Uploaded image for project: 'Commons DBCP'
  1. Commons DBCP
  2. DBCP-281

[dbcp] Deadlock when evicting dbcp objects (testWhileIdle=true) [ re-open of DBCP-65]

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 1.2.2
    • 1.3
    • None
    • Operating System: All
      Platform: All

    • 34539

    Description

      re-open of DBCP-65... it ain't fixed yet

      The GenericKeyedObjectPool$Evictor thread can still deadlock with dbcp
      objects.

      "Timer-1":
      at org.apache.commons.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)

      • waiting to lock <0x13cb66c0> (a org.apache.commons.dbcp.PoolableConnection)
        at org.apache.commons.dbcp.AbandonedTrace.init(AbandonedTrace.java:92)
        at org.apache.commons.dbcp.AbandonedTrace.<init>(AbandonedTrace.java:82)
        at org.apache.commons.dbcp.DelegatingStatement.<init>(DelegatingStatement.java:61)
        at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:224)
        at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:331)
        at org.apache.commons.dbcp.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:312)
        at org.apache.commons.pool.impl.GenericObjectPool.evict(GenericObjectPool.java:1217)
      • locked <0x0af4d498> (a org.apache.commons.pool.impl.GenericObjectPool)
        at org.apache.commons.pool.impl.GenericObjectPool$Evictor.run(GenericObjectPool.java:1341)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
        "extract_themes_from_message_command_container-2":
        at org.apache.commons.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
      • waiting to lock <0x0af4d498> (a org.apache.commons.pool.impl.GenericObjectPool)
        at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:1076)
        at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:87)
      • locked <0x13cb66c0> (a org.apache.commons.dbcp.PoolableConnection)
        at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:181)
        at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:96)
        at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:451)
        at org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:406)
        at org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:293)
        at org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:221)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:119)
        at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:606)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
        at net.tramposys.log.context.hibernate.HibernateLogContextManager.createOrAssociateLogContextWithJmsMessage(HibernateLogContextManager.java:68)
        at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
        at $Proxy30.createOrAssociateLogContextWithJmsMessage(Unknown Source)
        at net.tramposys.commandq.jms.JmsCommandExecutor.onMessage(JmsCommandExecutor.java:59)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:235)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:927)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:851)
        at java.lang.Thread.run(Thread.java:613)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mccraig craig mcmillan
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: