#117 deadlocks in c3p0-0.9.2.1.jar

closed-fixed
Steve Waldman
None
7
2013-05-22
2013-05-20
Anonymous
No

Found one Java-level deadlock:

"C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#1":
waiting to lock monitor 0x0000000052139e50 (object 0x00000007042a19d8, a com.mysql.jdbc.JDBC4ResultSet),
which is held by "C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#0"
"C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#0":
waiting to lock monitor 0x0000000052f63440 (object 0x00000007042541b8, a com.mysql.jdbc.JDBC4Connection),
which is held by "C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#1"

Java stack information for the threads listed above:

"C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#1":
at com.mysql.jdbc.ResultSetImpl.realClose(ResultSetImpl.java:7195)
- waiting to lock <0x00000007042a19d8> (a com.mysql.jdbc.JDBC4ResultSet)
at com.mysql.jdbc.ResultSetImpl.close(ResultSetImpl.java:909)
at com.mysql.jdbc.StatementImpl.realClose(StatementImpl.java:2478)
- locked <0x00000007042a1a88> (a com.mysql.jdbc.StatementImpl)
at com.mysql.jdbc.ConnectionImpl.closeAllOpenStatements(ConnectionImpl.java:1628)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4388)
at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1601)
- locked <0x00000007042541b8> (a com.mysql.jdbc.JDBC4Connection)
at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:629)
at com.mchange.v2.c3p0.impl.NewPooledConnection.closeMaybeCheckedOut(NewPooledConnection.java:259)
- locked <0x0000000704255ba0> (a com.mchange.v2.c3p0.impl.NewPooledConnection)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:619)
at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:1024)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
"C3P0PooledConnectionPoolManager[identityToken->31b6y68u1at2f6m11v89lr|40e99ce5]-HelperThread-#0":
at com.mysql.jdbc.ConnectionImpl.getCharacterSetMetadata(ConnectionImpl.java:2851)
- waiting to lock <0x00000007042541b8> (a com.mysql.jdbc.JDBC4Connection)
at com.mysql.jdbc.Field.getStringFromBytes(Field.java:717)
at com.mysql.jdbc.Field.getOriginalName(Field.java:659)
at com.mysql.jdbc.ResultSetImpl.buildIndexMapping(ResultSetImpl.java:751)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1110)
- locked <0x00000007042a19d8> (a com.mysql.jdbc.JDBC4ResultSet)
at com.mysql.jdbc.DatabaseMetaData$9.forEach(DatabaseMetaData.java:5059)
at com.mysql.jdbc.IterateBlock.doForAll(IterateBlock.java:51)
at com.mysql.jdbc.DatabaseMetaData.getTables(DatabaseMetaData.java:4991)
at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnectionNoQuery(DefaultConnectionTester.java:197)
at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(DefaultConnectionTester.java:74)
at com.mchange.v2.c3p0.AbstractConnectionTester.activeCheckConnection(AbstractConnectionTester.java:79)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.testPooledConnection(C3P0PooledConnectionPool.java:503)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.finerLoggingTestPooledConnection(C3P0PooledConnectionPool.java:451)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.finerLoggingTestPooledConnection(C3P0PooledConnectionPool.java:443)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.refurbishIdleResource(C3P0PooledConnectionPool.java:433)
- locked <0x0000000704255cd8> (a java.lang.Object)
at com.mchange.v2.resourcepool.BasicResourcePool$AsyncTestIdleResourceTask.run(BasicResourcePool.java:2151)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)

Found 1 deadlock.

Discussion


  • Anonymous
    2013-05-21

    • assigned_to: nobody --> swaldman
     

  • Anonymous
    2013-05-21

    • priority: 5 --> 7
     
  • Steve Waldman
    Steve Waldman
    2013-05-22

    • status: open --> closed
     
  • Steve Waldman
    Steve Waldman
    2013-05-22

    Thank you for the detailed report. Should be resolved as of the latest version of c3p0-0.9.5-pre3-SNAPSHOT.

     
  • Steve Waldman
    Steve Waldman
    2013-05-22

    • status: closed --> closed-fixed