I'm seeing several occurrences of deadlocks in Tomcat like the following. Any clues? Definition of the Resource is below.
Found one Java-level deadlock: ============================= "http-8081-56": waiting to lock monitor 0x08f50bd0 (object 0x560511f8, a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool), which is held by "Timer-0" "Timer-0": waiting to lock monitor 0x08f9cea4 (object 0x5669f358, a org.apache.tomcat.dbcp.dbcp.PoolableConnection), which is held by "pool-3580-thread-5" "pool-3580-thread-5": waiting to lock monitor 0x08f50bd0 (object 0x560511f8, a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool), which is held by "Timer-0" Java stack information for the threads listed above: =================================================== "http-8081-56": at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:916) - waiting to lock <0x560511f8> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at com.csc.mm.db.DBUtil.getDBConnection(DBUtil.java:89) (truncated - application code) "Timer-0": at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175) - waiting to lock <0x5669f358> (a org.apache.tomcat.dbcp.dbcp.PoolableConnection) at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.init(AbandonedTrace.java:92) at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.<init>(AbandonedTrace.java:82) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.<init>(DelegatingStatement.java:61) at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:224) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:331) at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:312) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.evict(GenericObjectPool.java:1217) - locked <0x560511f8> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool$Evictor.run(GenericObjectPool.java:1341) at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source) "pool-3580-thread-5": at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136) - waiting to lock <0x560511f8> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:1076) at org.apache.tomcat.dbcp.dbcp.PoolableConnection.close(PoolableConnection.java:87) - locked <0x5669f358> (a org.apache.tomcat.dbcp.dbcp.PoolableConnection) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181) at com.csc.mm.db.DBUtil.executeQuery(DBUtil.java:408) (truncated - application code) <Resource name="jdbc/main" url="jdbc:mysql://blahblah/blahblah?profileSQL=false&zeroDateTimeBehavior=convertToNull" username="ddddddd" password="dddddd" auth="Container" type="javax.sql.DataSource" initialSize="0" minIdle="0" removeAbandoned="false" removeAbandonedTimeout="60" logAbandoned="true" maxActive="150" maxIdle="100" maxWait="10000" poolPreparedStatements="true" driverClassName="com.mysql.jdbc.Driver" validationQuery="select * from operator limit 1" testWhileIdle="true" testOnBorrow="false" testOnReturn="false" timeBetweenEvictionRunsMillis="10000" numTestsPerEvictionRun="100" minEvictableIdleTimeMillis="600000" /> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org