JVM зависает при выключении - PullRequest
0 голосов
/ 27 апреля 2019

JVM моего приложения зависает при завершении работы. Находясь в этом состоянии, я взял дамп потока, используя jstack. Но для меня не очевидно, что вызывает зависание в этом дампе потока. Любая помощь будет высоко ценится.

Я удалил ПУСКАННЫЕ темы из дампа.

2019-04-26 20:26:11
Full thread dump OpenJDK 64-Bit Server VM (25.191-b12 mixed mode):

"TenantsRegistry-HEARTBEAT" #17 daemon prio=5 os_prio=0 tid=0x000055e33475f800 nid=0x24 in Object.wait() [0x00007f2dd9e64000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x000000072c2d1858> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)


"ExtendedDataCache-HEARTBEAT" #12 daemon prio=5 os_prio=0 tid=0x000055e33434a800 nid=0x1f in Object.wait() [0x00007f2dda769000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x000000072c07c0b8> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

"HikariPool-1 housekeeper" #11 daemon prio=5 os_prio=0 tid=0x000055e334244800 nid=0x1e waiting on condition [0x00007f2ddaf09000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x000000072b87c350> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)


"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x000055e33355d000 nid=0x16 in Object.wait() [0x00007f2de1237000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x000000072aaa7e58> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
    - locked <0x000000072aaa7e58> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)

"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x000055e33355a000 nid=0x15 in Object.wait() [0x00007f2de1338000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
    at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
    - locked <0x000000072aaa64d0> (a java.lang.ref.Reference$Lock)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"VM Thread" os_prio=0 tid=0x000055e333550000 nid=0x14 runnable 

"VM Periodic Task Thread" os_prio=0 tid=0x000055e3335bd000 nid=0x1b waiting on condition 

JNI global references: 420

...