APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

本文记录了一次C3P0连接池出现死锁的情况,详细展示了出现问题时的警告日志及线程堆栈信息。通过分析,可以发现所有活动线程都在尝试获取数据库连接,而连接池中没有可用连接,导致了任务堆积。

2018-07-09 10:00:57.862 WARN  [C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-AdminTaskTimer] [c.m.v.a.ThreadPoolAsynchronousRunner:211] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@69173a6c -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
2018-07-09 10:00:57.867 WARN  [C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-AdminTaskTimer] [c.m.v.a.ThreadPoolAsynchronousRunner:211] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@69173a6c -- APPARENT DEADLOCK!!! Complete Status: 
Managed Threads: 3
Active Threads: 3
Active Tasks: 
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@58a9583a
on thread: C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#1
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@55df754f
on thread: C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#0
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@7d5ec44b
on thread: C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#2
Pending Tasks: 
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@346fd2c
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@29975562
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@e66aa43
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@76341c17
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@572066a1
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@103200b7
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@42ccf6af
Pool thread stack traces:
Thread[C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#0,5,main]
java.net.DualStackPlainSocketImpl.connect0(Native Method)
java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
java.net.AbstractPlainSocketImpl.connect(Unknown Source)
java.net.PlainSocketImpl.connect(Unknown Source)
java.net.SocksSocketImpl.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)


net.sf.log4jdbc.DriverSpy.connect(DriverSpy.java:728)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
Thread[C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#1,5,main]
java.net.DualStackPlainSocketImpl.connect0(Native Method)
java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
java.net.AbstractPlainSocketImpl.connect(Unknown Source)
java.net.PlainSocketImpl.connect(Unknown Source)
java.net.SocksSocketImpl.connect(Unknown Source)

net.sf.log4jdbc.DriverSpy.connect(DriverSpy.java:728)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
Thread[C3P0PooledConnectionPoolManager[identityToken->1bqrudf9wyma3jctc8ecn|172099cb]-HelperThread-#2,5,main]
java.net.DualStackPlainSocketImpl.connect0(Native Method)
java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
java.net.AbstractPlainSocketImpl.connect(Unknown Source)
java.net.PlainSocketImpl.connect(Unknown Source)
java.net.SocksSocketImpl.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)

net.sf.log4jdbc.DriverSpy.connect(DriverSpy.java:728)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)

com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

 

 

就是数据库连接问题,哈哈哈哈!  选中查看答案~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值