You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Jörg Hohwiller (JIRA)" <ji...@apache.org> on 2008/12/02 10:28:45 UTC

[jira] Created: (DBCP-277) DBCP Locking Up

DBCP Locking Up
---------------

                 Key: DBCP-277
                 URL: https://issues.apache.org/jira/browse/DBCP-277
             Project: Commons Dbcp
          Issue Type: Bug
    Affects Versions: 1.2.2
            Reporter: Jörg Hohwiller


We had hanging threads that stalled in SocketInputStream.socketRead0 via Oracle-JDBC-Driver in our tomcat. 
Because we found DBCP-28, we decided to update to version 1.2.2 of commons-dbcp.
Since that our Problems got worse because we experience some sort of deadlock in commons-dbcp. 
Thread-Dumps after a nightly loadtest expose that threads got stuck in GenericObjectPool.returnObject, while others wait in borrowObject. 
We stopped the load and waited for hours. The thread-dump still looks the same:

"TP-Processor1361" daemon prio=1 tid=0x67379fb8 nid=0x36e9 waiting for monitor entry [0x5f5cb000..0x5f5cc0c0]
	at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:916)
	- waiting to lock <0x716c4e50> (a org.apache.commons.pool.impl.GenericObjectPool)
	at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:87)
	- locked <0x7a6d0408> (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.cleanup(ConnectionManager.java:385)
	at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:324)
	at org.hibernate.impl.SessionImpl.close(SessionImpl.java:298)
	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:774)
	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:760)
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doCleanupAfterCompletion(HibernateTransactionManager.java:674)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.cleanupAfterCompletion(AbstractPlatformTransactionManager.java:966)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:759)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
...

The same issue was already discussed on the mailing-list so we are not the only ones with this problem:
http://mail-archives.apache.org/mod_mbox/commons-user/200712.mbox/%3C5611A9EAACBFF444BE35BF1DAAB314DDE2A71F@DKKOB2101MB.tsden.tcad.telia.se%3E

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (DBCP-277) DBCP Locking Up

Posted by "Phil Steitz (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DBCP-277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phil Steitz closed DBCP-277.
----------------------------


> DBCP Locking Up
> ---------------
>
>                 Key: DBCP-277
>                 URL: https://issues.apache.org/jira/browse/DBCP-277
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.2
>            Reporter: Jörg Hohwiller
>
> We had hanging threads that stalled in SocketInputStream.socketRead0 via Oracle-JDBC-Driver in our tomcat. 
> Because we found DBCP-28, we decided to update to version 1.2.2 of commons-dbcp.
> Since that our Problems got worse because we experience some sort of deadlock in commons-dbcp. 
> Thread-Dumps after a nightly loadtest expose that threads got stuck in GenericObjectPool.returnObject, while others wait in borrowObject. 
> We stopped the load and waited for hours. The thread-dump still looks the same:
> "TP-Processor1361" daemon prio=1 tid=0x67379fb8 nid=0x36e9 waiting for monitor entry [0x5f5cb000..0x5f5cc0c0]
> 	at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:916)
> 	- waiting to lock <0x716c4e50> (a org.apache.commons.pool.impl.GenericObjectPool)
> 	at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:87)
> 	- locked <0x7a6d0408> (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.cleanup(ConnectionManager.java:385)
> 	at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:324)
> 	at org.hibernate.impl.SessionImpl.close(SessionImpl.java:298)
> 	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:774)
> 	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:760)
> 	at org.springframework.orm.hibernate3.HibernateTransactionManager.doCleanupAfterCompletion(HibernateTransactionManager.java:674)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.cleanupAfterCompletion(AbstractPlatformTransactionManager.java:966)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:759)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
> ...
> The same issue was already discussed on the mailing-list so we are not the only ones with this problem:
> http://mail-archives.apache.org/mod_mbox/commons-user/200712.mbox/%3C5611A9EAACBFF444BE35BF1DAAB314DDE2A71F@DKKOB2101MB.tsden.tcad.telia.se%3E

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (DBCP-277) DBCP Locking Up

Posted by "Phil Steitz (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DBCP-277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Phil Steitz resolved DBCP-277.
------------------------------

    Resolution: Incomplete

Please reopen, attaching a fuller thread dump (including the thread that is holding the lock on the GenericObjectPool)  if the explanation below is incorrect / inconsistent with examination of full thread dumps.

>From the line numbers in the stack trace, it looks like you are using Pool 1.3, which fully synchronizes borrowObject and returnObject. If a thread that is opening, validating or closing a connection hangs, it will effectively "lock up" the pool.  See POOL=93.  Synchronization of borrow/return methods was narrowed in Pool 1.4, so upgrading pool might resolve your problem.

> DBCP Locking Up
> ---------------
>
>                 Key: DBCP-277
>                 URL: https://issues.apache.org/jira/browse/DBCP-277
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.2
>            Reporter: Jörg Hohwiller
>
> We had hanging threads that stalled in SocketInputStream.socketRead0 via Oracle-JDBC-Driver in our tomcat. 
> Because we found DBCP-28, we decided to update to version 1.2.2 of commons-dbcp.
> Since that our Problems got worse because we experience some sort of deadlock in commons-dbcp. 
> Thread-Dumps after a nightly loadtest expose that threads got stuck in GenericObjectPool.returnObject, while others wait in borrowObject. 
> We stopped the load and waited for hours. The thread-dump still looks the same:
> "TP-Processor1361" daemon prio=1 tid=0x67379fb8 nid=0x36e9 waiting for monitor entry [0x5f5cb000..0x5f5cc0c0]
> 	at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:916)
> 	- waiting to lock <0x716c4e50> (a org.apache.commons.pool.impl.GenericObjectPool)
> 	at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:87)
> 	- locked <0x7a6d0408> (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.cleanup(ConnectionManager.java:385)
> 	at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:324)
> 	at org.hibernate.impl.SessionImpl.close(SessionImpl.java:298)
> 	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:774)
> 	at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:760)
> 	at org.springframework.orm.hibernate3.HibernateTransactionManager.doCleanupAfterCompletion(HibernateTransactionManager.java:674)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.cleanupAfterCompletion(AbstractPlatformTransactionManager.java:966)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:759)
> 	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
> ...
> The same issue was already discussed on the mailing-list so we are not the only ones with this problem:
> http://mail-archives.apache.org/mod_mbox/commons-user/200712.mbox/%3C5611A9EAACBFF444BE35BF1DAAB314DDE2A71F@DKKOB2101MB.tsden.tcad.telia.se%3E

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.