lhotari commented on PR #15155:
URL: https://github.com/apache/pulsar/pull/15155#issuecomment-1104116948

   I was able to add a unit test 
`org.apache.pulsar.broker.admin.AdminApiHealthCheckTest#testHealthCheckupDetectsDeadlock`.
   
   It demonstrates what gets logged when a deadlock is detected.
   
   Here's some of the logging:
   ```
   Found one Java-level deadlock:
   =============================
   "deadlockthread-1":
     waiting for ownable synchronizer 0x00000000d896b550, (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
     which is held by "deadlockthread-2"
   "deadlockthread-2":
     waiting for ownable synchronizer 0x00000000d896b4d8, (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
     which is held by "deadlockthread-1"
   
   Java stack information for the threads listed above:
   ===================================================
   "deadlockthread-1":
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000000d896b550> (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at 
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued([email protected]/AbstractQueuedSynchronizer.java:917)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire([email protected]/AbstractQueuedSynchronizer.java:1240)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock([email protected]/ReentrantReadWriteLock.java:959)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest.deadlock(AdminApiHealthCheckTest.java:133)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest.lambda$testHealthCheckupDetectsDeadlock$4(AdminApiHealthCheckTest.java:109)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest$$Lambda$720/0x00000001008abc40.run(Unknown
 Source)
        at java.lang.Thread.run([email protected]/Thread.java:829)
   "deadlockthread-2":
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000000d896b4d8> (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at 
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt([email protected]/AbstractQueuedSynchronizer.java:885)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued([email protected]/AbstractQueuedSynchronizer.java:917)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire([email protected]/AbstractQueuedSynchronizer.java:1240)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock([email protected]/ReentrantReadWriteLock.java:959)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest.deadlock(AdminApiHealthCheckTest.java:133)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest.lambda$testHealthCheckupDetectsDeadlock$5(AdminApiHealthCheckTest.java:113)
        at 
org.apache.pulsar.broker.admin.AdminApiHealthCheckTest$$Lambda$721/0x00000001008ab040.run(Unknown
 Source)
        at java.lang.Thread.run([email protected]/Thread.java:829)
   
   Found 1 deadlock.
   ```
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to