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&amp;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

Reply via email to