You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Metta <ma...@despatch.net> on 2008/06/19 10:22:15 UTC
DBCP Deadlock
I'm running TC 6.0.16 on 64Bit RH Linux 5.1
We're seeing a deadlock in the tomcat-dbcp - looks like it's to do with the
abandoned connection checking. I thought 6.0.16 used the commons-dbcp-1.2.2
release which supposedly fixes this issue?
=============================
"Timer-3":
waiting to lock monitor 0x0000000053b40548 (object 0x00002aaabf3210f0, a
org.apache.tomcat.dbcp.dbcp.PoolableConnection),
which is held by "TP-Processor27"
"TP-Processor27":
waiting to lock monitor 0x0000000053b404d0 (object 0x00002aaab9fa8b08, a
org.apache.tomcat.dbcp.pool.impl.GenericObjectPool),
which is held by "Timer-3"
Java stack information for the threads listed above:
===================================================
"Timer-3":
at
org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)
- waiting to lock <0x00002aaabf3210f0> (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 <0x00002aaab9fa8b08> (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(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
"TP-Processor27":
at
org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
- waiting to lock <0x00002aaab9fa8b08> (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 <0x00002aaabf3210f0> (a
org.apache.tomcat.dbcp.dbcp.PoolableConnection)
....
--
View this message in context: http://www.nabble.com/DBCP-Deadlock-tp17999703p17999703.html
Sent from the Tomcat - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: DBCP Deadlock
Posted by Mark Thomas <ma...@apache.org>.
On 14/06/2010 09:07, elankumaran wrote:
>
> Hi Filip Hanik,
>
> We are using the dbcp 1.2.2 with Tomcat 5& 6 version. We are experiencing
> the dead lock issue in the getNumIdle() method of GenericObjectPool class.
> Can i update to dpcp 1.4 version in order to fix the issue?
That would be a question for the users mailing list.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: DBCP Deadlock
Posted by elankumaran <EL...@GMAIL.COM>.
Hi Filip Hanik,
We are using the dbcp 1.2.2 with Tomcat 5 & 6 version. We are experiencing
the dead lock issue in the getNumIdle() method of GenericObjectPool class.
Can i update to dpcp 1.4 version in order to fix the issue?
Thread dump:
"http-8080-Processor17" daemon prio=10 tid=0x00002aabdc017400 nid=0x2ec2
waiting for monitor entry [0x0000000042d99000..0x0000000042d9aa10]
java.lang.Thread.State: BLOCKED (on object monitor)
at
org.apache.commons.pool.impl.GenericObjectPool.getNumIdle(GenericObjectPool.java:911)
- waiting to lock <0x00002aab002a0b28> (a
org.apache.commons.dbcp.AbandonedObjectPool)
at
org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:78)
at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
Thanks in advance,
Elan
Filip Hanik - Dev Lists wrote:
>
> I have submitted a patch for this to commons
>
> https://issues.apache.org/jira/browse/DBCP-270
>
> Filip
>
> Metta wrote:
>> I'm running TC 6.0.16 on 64Bit RH Linux 5.1
>>
>> We're seeing a deadlock in the tomcat-dbcp - looks like it's to do with
>> the
>> abandoned connection checking. I thought 6.0.16 used the
>> commons-dbcp-1.2.2
>> release which supposedly fixes this issue?
>>
>> =============================
>> "Timer-3":
>> waiting to lock monitor 0x0000000053b40548 (object 0x00002aaabf3210f0,
>> a
>> org.apache.tomcat.dbcp.dbcp.PoolableConnection),
>> which is held by "TP-Processor27"
>> "TP-Processor27":
>> waiting to lock monitor 0x0000000053b404d0 (object 0x00002aaab9fa8b08,
>> a
>> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool),
>> which is held by "Timer-3"
>>
>> Java stack information for the threads listed above:
>> ===================================================
>> "Timer-3":
>> at
>> org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)
>> - waiting to lock <0x00002aaabf3210f0> (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 <0x00002aaab9fa8b08> (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(Timer.java:512)
>> at java.util.TimerThread.run(Timer.java:462)
>> "TP-Processor27":
>> at
>> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
>> - waiting to lock <0x00002aaab9fa8b08> (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 <0x00002aaabf3210f0> (a
>> org.apache.tomcat.dbcp.dbcp.PoolableConnection)
>> ....
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>
--
View this message in context: http://old.nabble.com/DBCP-Deadlock-tp17999703p28876880.html
Sent from the Tomcat - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: DBCP Deadlock
Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
I have submitted a patch for this to commons
https://issues.apache.org/jira/browse/DBCP-270
Filip
Metta wrote:
> I'm running TC 6.0.16 on 64Bit RH Linux 5.1
>
> We're seeing a deadlock in the tomcat-dbcp - looks like it's to do with the
> abandoned connection checking. I thought 6.0.16 used the commons-dbcp-1.2.2
> release which supposedly fixes this issue?
>
> =============================
> "Timer-3":
> waiting to lock monitor 0x0000000053b40548 (object 0x00002aaabf3210f0, a
> org.apache.tomcat.dbcp.dbcp.PoolableConnection),
> which is held by "TP-Processor27"
> "TP-Processor27":
> waiting to lock monitor 0x0000000053b404d0 (object 0x00002aaab9fa8b08, a
> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool),
> which is held by "Timer-3"
>
> Java stack information for the threads listed above:
> ===================================================
> "Timer-3":
> at
> org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)
> - waiting to lock <0x00002aaabf3210f0> (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 <0x00002aaab9fa8b08> (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(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> "TP-Processor27":
> at
> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
> - waiting to lock <0x00002aaab9fa8b08> (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 <0x00002aaabf3210f0> (a
> org.apache.tomcat.dbcp.dbcp.PoolableConnection)
> ....
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: DBCP Deadlock
Posted by James Abley <ja...@gmail.com>.
Hi,
I'm running Tomcat 6.0.18 and still see this issue. Can you provide more
information about how one might disable background validation, or when a
version of Tomcat might be released does not contain this issue [1]? My
resource is currently defined like this:
<Resource name="jdbc/db" type="javax.sql.DataSource"
auth="Container"
description="MySQL database Resource" username="user"
password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysql-host:3306/my-db"
maxActive="100" maxIdle="10"
testWhileIdle="true"
timeBetweenEvictionRunsMillis ="10000"
minEvictableIdleTimeMillis ="600000"
validationQuery="select 1"/>
I think that disabling background validation means I should remove the
testWhileIdle attribute and instead use testOnBorrow [2], but I would like
to confirm.
Cheers,
James
[1]
http://svn.apache.org/repos/asf/tomcat/trunk/modules/jdbc-pool/doc/jdbc-pool.xml
[2]
http://dev.mysql.com/doc/refman/5.1/en/connector-j-usagenotes-j2ee.html#connector-j-usagenotes-tomcat
Filip Hanik - Dev Lists wrote:
>
> Tomcat uses 1.2.2 in that version, so I would suggest not using the
> background validation at this point
>
> Filip
>
> Metta wrote:
>> I'm running TC 6.0.16 on 64Bit RH Linux 5.1
>>
>> We're seeing a deadlock in the tomcat-dbcp - looks like it's to do with
>> the
>> abandoned connection checking. I thought 6.0.16 used the
>> commons-dbcp-1.2.2
>> release which supposedly fixes this issue?
>>
>> =============================
>> "Timer-3":
>> waiting to lock monitor 0x0000000053b40548 (object 0x00002aaabf3210f0,
>> a
>> org.apache.tomcat.dbcp.dbcp.PoolableConnection),
>> which is held by "TP-Processor27"
>> "TP-Processor27":
>> waiting to lock monitor 0x0000000053b404d0 (object 0x00002aaab9fa8b08,
>> a
>> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool),
>> which is held by "Timer-3"
>>
>> Java stack information for the threads listed above:
>> ===================================================
>> "Timer-3":
>> at
>> org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)
>> - waiting to lock <0x00002aaabf3210f0> (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 <0x00002aaab9fa8b08> (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(Timer.java:512)
>> at java.util.TimerThread.run(Timer.java:462)
>> "TP-Processor27":
>> at
>> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
>> - waiting to lock <0x00002aaab9fa8b08> (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 <0x00002aaabf3210f0> (a
>> org.apache.tomcat.dbcp.dbcp.PoolableConnection)
>> ....
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/DBCP-Deadlock-tp17999703p21910567.html
Sent from the Tomcat - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: DBCP Deadlock
Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
Tomcat uses 1.2.2 in that version, so I would suggest not using the
background validation at this point
Filip
Metta wrote:
> I'm running TC 6.0.16 on 64Bit RH Linux 5.1
>
> We're seeing a deadlock in the tomcat-dbcp - looks like it's to do with the
> abandoned connection checking. I thought 6.0.16 used the commons-dbcp-1.2.2
> release which supposedly fixes this issue?
>
> =============================
> "Timer-3":
> waiting to lock monitor 0x0000000053b40548 (object 0x00002aaabf3210f0, a
> org.apache.tomcat.dbcp.dbcp.PoolableConnection),
> which is held by "TP-Processor27"
> "TP-Processor27":
> waiting to lock monitor 0x0000000053b404d0 (object 0x00002aaab9fa8b08, a
> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool),
> which is held by "Timer-3"
>
> Java stack information for the threads listed above:
> ===================================================
> "Timer-3":
> at
> org.apache.tomcat.dbcp.dbcp.AbandonedTrace.addTrace(AbandonedTrace.java:175)
> - waiting to lock <0x00002aaabf3210f0> (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 <0x00002aaab9fa8b08> (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(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)
> "TP-Processor27":
> at
> org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.addObjectToPool(GenericObjectPool.java:1136)
> - waiting to lock <0x00002aaab9fa8b08> (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 <0x00002aaabf3210f0> (a
> org.apache.tomcat.dbcp.dbcp.PoolableConnection)
> ....
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org