#76 APPARENT DEADLOCK 0.9.1.2

open
nobody
None
5
2009-08-21
2009-08-21
Michael Young
No

We're seeing these deadlock messages, and soon after our web application (Liferay Portal) fails with an OOM. What does this mean?

11:45:01,498 WARN [ThreadPoolAsynchronousRunner:608] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6534d952 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
11:45:22,129 WARN [ThreadPoolAsynchronousRunner:624] com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6534d952 -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 10
Active Threads: 7
Active Tasks:
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@6fab154c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@490369da (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#4)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@7f1a8ca8 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#7)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@2808aac9 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@510486a7 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#9)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@24677f (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@5606c2eb (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#6)
Pending Tasks:
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@55e6fe6c
Pool thread stack traces:
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#8,5,main]
java.lang.Object.wait(Native Method)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#7,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#4,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#9,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#5,5,main]
java.lang.Object.wait(Native Method)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3,5,main]
java.lang.Object.wait(Native Method)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#6,5,main]
com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask.run(BasicResourcePool.java:1229)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

11:46:37,554 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@6fab154c (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
11:46:37,555 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@7f1a8ca8 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
11:46:37,555 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@2808aac9 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
11:46:50,449 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@510486a7 (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
11:46:50,449 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@24677f (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().
11:46:50,449 WARN [ThreadPoolAsynchronousRunner:416] Task com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@5606c2eb (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().

Discussion

  • Michael Young
    Michael Young
    2009-08-21

    • priority: 5 --> 8
     
  • Michael Young
    Michael Young
    2009-08-21

    • priority: 8 --> 5
     
  • AdamWozPL
    AdamWozPL
    2009-08-31

    This is well known problem with c3p0 :(
    Many people observe this problem on their systems. My too :(

    Probably this is a bug in c3p0.
    For example you can have a look at anders post:
    viewtopic.php?uid=34116&f=1&t=947246&start=15

    Take care,
    Adam Woźniak

     
  • We've run into that issue and resolved it by adding the "automaticTestTable" parameter.