Following is the bottom part of a sample jstack output that detects one deadlock that involves the java.util.concurrent ownable synchronizer.
Found one Java-level deadlock: ============================= "SThread-6": waiting for ownable synchronizer 0x029bcdb8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync), which is held by "SThread-4" "SThread-4": waiting for ownable synchronizer 0x029bcde0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync), which is held by "SThread-5" "SThread-5": waiting for ownable synchronizer 0x029bce08, (a java.util.concurrent.locks.ReentrantLock$NonfairSync), which is held by "SThread-6" Java stack information for the threads listed above: =================================================== "SThread-6": at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x029bcdb8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:743) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1079) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at Deadlock$DeadlockThread.goSyncDeadlock(Deadlock.java:92) at Deadlock$DeadlockThread.syncLock(Deadlock.java:77) at Deadlock$DeadlockThread.run(Deadlock.java:60) "SThread-4": at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x029bcde0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:743) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1079) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at Deadlock$DeadlockThread.goSyncDeadlock(Deadlock.java:92) at Deadlock$DeadlockThread.syncLock(Deadlock.java:77) at Deadlock$DeadlockThread.run(Deadlock.java:60) "SThread-5": at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x029bce08> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:712) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:743) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1079) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at Deadlock$DeadlockThread.goSyncDeadlock(Deadlock.java:92) at Deadlock$DeadlockThread.syncLock(Deadlock.java:77) at Deadlock$DeadlockThread.run(Deadlock.java:60) |