What is Thread Dump | how to fetch & find Deadlock/Blocked Thread in java | MultiThreading, Part-2 (youtube.com)

viswar@saravanjs:~$  jstack -l 16951

2024-06-23 11:58:52

"Notification Thread" #17 [16993] daemon prio=9 os_prio=0 cpu=0.27ms elapsed=202799.99s tid=0x00007f050c141a70 nid=16993 runnable  [0x0000000000000000]

   java.lang.Thread.State: RUNNABLE

 

   Locked ownable synchronizers:

        - None

 

"Common-Cleaner" #18 [16994] daemon prio=8 os_prio=0 cpu=378.10ms elapsed=202799.98s tid=0x00007f050c1454c0 nid=16994 waiting on condition  [0x00007f04f0848000]

   java.lang.Thread.State: TIMED_WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a3605790> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.2/LockSupport.java:269)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1847)

        at java.lang.ref.ReferenceQueue.await(java.base@21.0.2/ReferenceQueue.java:71)

        at java.lang.ref.ReferenceQueue.remove0(java.base@21.0.2/ReferenceQueue.java:143)

        at java.lang.ref.ReferenceQueue.remove(java.base@21.0.2/ReferenceQueue.java:218)

        at jdk.internal.ref.CleanerImpl.run(java.base@21.0.2/CleanerImpl.java:140)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

        at jdk.internal.misc.InnocuousThread.run(java.base@21.0.2/InnocuousThread.java:186)

 

   Locked ownable synchronizers:

        - None

 

"Catalina-utility-1" #29 [17908] prio=1 os_prio=0 cpu=53280.80ms elapsed=202792.75s tid=0x00007f050ce67450 nid=17908 waiting on condition  [0x00007f04f0748000]

   java.lang.Thread.State: TIMED_WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a4300080> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.2/LockSupport.java:269)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@21.0.2/AbstractQueuedSynchronizer.java:1758)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:1182)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:899)

        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@21.0.2/ThreadPoolExecutor.java:1070)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@21.0.2/ThreadPoolExecutor.java:1130)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@21.0.2/ThreadPoolExecutor.java:642)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

 

   Locked ownable synchronizers:

        - None

 

"Catalina-utility-2" #30 [17910] prio=1 os_prio=0 cpu=53709.60ms elapsed=202792.75s tid=0x00007f044c002ea0 nid=17910 waiting on condition  [0x00007f049aefd000]

   java.lang.Thread.State: WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a4300080> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:371)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.2/AbstractQueuedSynchronizer.java:519)

        at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.2/ForkJoinPool.java:3780)

        at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.2/ForkJoinPool.java:3725)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1707)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:1177)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:899)

        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@21.0.2/ThreadPoolExecutor.java:1070)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@21.0.2/ThreadPoolExecutor.java:1130)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@21.0.2/ThreadPoolExecutor.java:642)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

 

   Locked ownable synchronizers:

        - None

 

"container-0" #31 [17913] prio=5 os_prio=0 cpu=2022.50ms elapsed=202792.74s tid=0x00007f050ce6e6b0 nid=17913 waiting on condition  [0x00007f049adfd000]

   java.lang.Thread.State: TIMED_WAITING (sleeping)

        at java.lang.Thread.sleep0(java.base@21.0.2/Native Method)

        at java.lang.Thread.sleep(java.base@21.0.2/Thread.java:509)

        at org.apache.catalina.core.StandardServer.await(StandardServer.java:565)

        at org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:197)

 

   Locked ownable synchronizers:

        - None

 

"boundedElastic-evictor-1" #32 [17948] daemon prio=5 os_prio=0 cpu=415.79ms elapsed=202792.58s tid=0x00007f050cafad50 nid=17948 waiting on condition  [0x00007f049a9b7000]

   java.lang.Thread.State: TIMED_WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a4547268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.2/LockSupport.java:269)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@21.0.2/AbstractQueuedSynchronizer.java:1758)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:1182)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:899)

        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@21.0.2/ThreadPoolExecutor.java:1070)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@21.0.2/ThreadPoolExecutor.java:1130)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@21.0.2/ThreadPoolExecutor.java:642)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

 

   Locked ownable synchronizers:

        - None

 

"parallel-1" #34 [17965] daemon prio=5 os_prio=0 cpu=7.05ms elapsed=202792.39s tid=0x00007f050d196880 nid=17965 waiting on condition  [0x00007f049acfd000]

   java.lang.Thread.State: WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a454cf18> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:371)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.2/AbstractQueuedSynchronizer.java:519)

        at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.2/ForkJoinPool.java:3780)

        at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.2/ForkJoinPool.java:3725)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1707)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:1170)

        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@21.0.2/ScheduledThreadPoolExecutor.java:899)

        at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@21.0.2/ThreadPoolExecutor.java:1070)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@21.0.2/ThreadPoolExecutor.java:1130)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@21.0.2/ThreadPoolExecutor.java:642)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

 

   Locked ownable synchronizers:

        - None

 

"http-nio-10100-exec-1" #36 [18576] daemon prio=5 os_prio=0 cpu=85.39ms elapsed=202789.40s tid=0x00007f050d5d9370 nid=18576 waiting on condition  [0x00007f049aafd000]

   java.lang.Thread.State: WAITING (parking)

        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)

        - parking to wait for  <0x00000000a49df540> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:371)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@21.0.2/AbstractQueuedSynchronizer.java:519)

        at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@21.0.2/ForkJoinPool.java:3780)

        at java.util.concurrent.ForkJoinPool.managedBlock(java.base@21.0.2/ForkJoinPool.java:3725)

        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1707)

        at java.util.concurrent.LinkedBlockingQueue.take(java.base@21.0.2/LinkedBlockingQueue.java:435)

        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)

        at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)

        at org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)

        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)

        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.runWith(java.base@21.0.2/Thread.java:1596)

        at java.lang.Thread.run(java.base@21.0.2/Thread.java:1583)

Generating ThreadDump from java code