JVM无法在没有非daemon线程的情况下退出

发布于 2025-02-01 18:29:14 字数 15027 浏览 2 评论 0原文

即使没有非daemon线程,我们的嵌入式码头应用程序之一也不会退出:根据线程转储:

Threads class SMR info:
_java_thread_list=0x00007fede8001c60, length=15, elements={
0x00007ff680422000, 0x00007ff680426000, 0x00007ff680439000, 0x00007ff68043b800,
0x00007ff680445800, 0x00007ff68044a000, 0x00007ff6804c3000, 0x00007ff6804ce000,
0x00007ff682206000, 0x00007ff682576800, 0x00007ff683403800, 0x00007ff6833fc800,
0x00007ff68352a800, 0x00007ff680019800, 0x00007fede8001000
}

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=4.16ms elapsed=484197.27s tid=0x00007ff680422000 nid=0x5a09 waiting on condition  [0x00007fee0c2e6000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList([email protected]/Native Method)
        at java.lang.ref.Reference.processPendingReferences([email protected]/Reference.java:241)
        at java.lang.ref.Reference$ReferenceHandler.run([email protected]/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=2.53ms elapsed=484197.26s tid=0x00007ff680426000 nid=0x5a0a in Object.wait()  [0x00007fee0c1e5000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x00007fee62029b60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee62029b60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at java.lang.ref.Finalizer$FinalizerThread.run([email protected]/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0.60ms elapsed=484197.25s tid=0x00007ff680439000 nid=0x5a0b runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 cpu=13349.31ms elapsed=484197.25s tid=0x00007ff68043b800 nid=0x5a0c waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #17 daemon prio=9 os_prio=0 cpu=4154.09ms elapsed=484197.25s tid=0x00007ff680445800 nid=0x5a0d waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #23 daemon prio=9 os_prio=0 cpu=557.92ms elapsed=484197.25s tid=0x00007ff68044a000 nid=0x5a0e runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #24 daemon prio=9 os_prio=0 cpu=0.06ms elapsed=484197.20s tid=0x00007ff6804c3000 nid=0x5a10 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #25 daemon prio=8 os_prio=0 cpu=301.60ms elapsed=484197.19s tid=0x00007ff6804ce000 nid=0x5a12 in Object.wait()  [0x00007feded244000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6205e2f0> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
        at java.lang.Thread.run([email protected]/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:134)
"org.apache.hadoop.fs.FileSystem$Statistics$StatisticsDataReferenceCleaner" #30 daemon prio=5 os_prio=0 cpu=0.14ms elapsed=484194.24s tid=0x00007ff682206000 nid=0x5b66 in Object.wait()  [0x00007fecde6a4000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x00007fee6e5000f0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6e5000f0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at org.apache.hadoop.fs.FileSystem$Statistics$StatisticsDataReferenceCleaner.run(FileSystem.java:3212)
        at java.lang.Thread.run([email protected]/Thread.java:834)

"java-sdk-http-connection-reaper" #32 daemon prio=5 os_prio=0 cpu=349.83ms elapsed=484192.91s tid=0x00007ff682576800 nid=0x5c8f waiting on condition  [0x00007fecdebb4000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep([email protected]/Native Method)
        at com.amazonaws.http.IdleConnectionReaper.run(IdleConnectionReaper.java:188)

"Cleaner-0" #237 daemon prio=8 os_prio=0 cpu=291.57ms elapsed=484191.45s tid=0x00007ff683403800 nid=0x5d6d in Object.wait()  [0x00007fedecc19000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6e800570> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
        at java.lang.Thread.run([email protected]/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:134)

"MonitorScheduler-0" #238 daemon prio=5 os_prio=0 cpu=88.51ms elapsed=484190.84s tid=0x00007ff6833fc800 nid=0x5d74 waiting on condition  [0x00007fedecd1a000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00007fee6e84aee0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:1170)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)
"parent-monitor-0" #247 daemon prio=5 os_prio=0 cpu=0.99ms elapsed=484190.22s tid=0x00007ff68352a800 nid=0x5d85 waiting on condition  [0x00007fe8b3dfc000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.Shutdown.halt0([email protected]/Native Method)
        at java.lang.Shutdown.halt([email protected]/Shutdown.java:152)
        - locked <0x00007fee621d7bf0> (a java.lang.Shutdown$Lock)
        at java.lang.Shutdown.exit([email protected]/Shutdown.java:166)
        - locked <0x00007fee621d7c00> (a java.lang.Shutdown$Lock)
        at java.lang.Runtime.exit([email protected]/Runtime.java:115)
        at java.lang.System.exit([email protected]/System.java:1746)
        at org.apache.druid.indexing.worker.executor.ExecutorLifecycle$1.run(ExecutorLifecycle.java:164)
        at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)

"DestroyJavaVM" #463 prio=5 os_prio=0 cpu=7216.70ms elapsed=482936.25s tid=0x00007ff680019800 nid=0x5a02 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #466 daemon prio=9 os_prio=0 cpu=1.70ms elapsed=0.10s tid=0x00007fede8001000 nid=0xfd11 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VM Thread" os_prio=0 cpu=11984.02ms elapsed=484197.27s tid=0x00007ff680419800 nid=0x5a08 runnable  

"GC Thread#0" os_prio=0 cpu=3347.56ms elapsed=484197.30s tid=0x00007ff680044000 nid=0x5a03 runnable  

"GC Thread#1" os_prio=0 cpu=3543.94ms elapsed=484196.38s tid=0x00007fee00001000 nid=0x5a1e runnable  

"GC Thread#2" os_prio=0 cpu=3272.22ms elapsed=484196.38s tid=0x00007fee00002800 nid=0x5a1f runnable  

"GC Thread#3" os_prio=0 cpu=3355.05ms elapsed=484196.38s tid=0x00007fee00004000 nid=0x5a20 runnable  
"GC Thread#42" os_prio=0 cpu=3385.71ms elapsed=484196.38s tid=0x00007fee00046800 nid=0x5a47 runnable  

"G1 Main Marker" os_prio=0 cpu=9.86ms elapsed=484197.30s tid=0x00007ff680088800 nid=0x5a04 runnable  

"G1 Conc#0" os_prio=0 cpu=2674.73ms elapsed=484197.30s tid=0x00007ff68008a000 nid=0x5a05 runnable  

"G1 Conc#1" os_prio=0 cpu=2662.56ms elapsed=484196.12s tid=0x00007fee10001000 nid=0x5a7f runnable  

"G1 Conc#2" os_prio=0 cpu=2665.72ms elapsed=484196.12s tid=0x00007fee10002800 nid=0x5a80 runnable  

"G1 Conc#3" os_prio=0 cpu=2668.94ms elapsed=484196.12s tid=0x00007fee10004000 nid=0x5a82 runnable  
"G1 Refine#0" os_prio=0 cpu=-0.00ms elapsed=484197.29s tid=0x00007ff6803af000 nid=0x5a06 runnable  

"G1 Refine#1" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fee04001000 nid=0x95eb runnable  

"G1 Refine#2" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fe7580e0000 nid=0x95ec runnable  

"G1 Refine#3" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fe76c0a0800 nid=0x95ed runnable  
"G1 Young RemSet Sampling" os_prio=0 cpu=288497.10ms elapsed=484197.29s tid=0x00007ff6803b1000 nid=0x5a07 runnable  
JNI global refs: 34, weak refs: 0

我们在Surface非daemon线程中添加了一些附加的日志记录,并且它记录了线程:nettyclients-2-2 -1,5,主作为非守护程序。但是,我没有在线程转储中看到此线程。 如何确定阻止此过程退出的是什么?

One of our embedded jetty applications doesn't exit even though there are no non-daemon threads according to the thread dump:

Threads class SMR info:
_java_thread_list=0x00007fede8001c60, length=15, elements={
0x00007ff680422000, 0x00007ff680426000, 0x00007ff680439000, 0x00007ff68043b800,
0x00007ff680445800, 0x00007ff68044a000, 0x00007ff6804c3000, 0x00007ff6804ce000,
0x00007ff682206000, 0x00007ff682576800, 0x00007ff683403800, 0x00007ff6833fc800,
0x00007ff68352a800, 0x00007ff680019800, 0x00007fede8001000
}

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=4.16ms elapsed=484197.27s tid=0x00007ff680422000 nid=0x5a09 waiting on condition  [0x00007fee0c2e6000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList([email protected]/Native Method)
        at java.lang.ref.Reference.processPendingReferences([email protected]/Reference.java:241)
        at java.lang.ref.Reference$ReferenceHandler.run([email protected]/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=2.53ms elapsed=484197.26s tid=0x00007ff680426000 nid=0x5a0a in Object.wait()  [0x00007fee0c1e5000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x00007fee62029b60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee62029b60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at java.lang.ref.Finalizer$FinalizerThread.run([email protected]/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0.60ms elapsed=484197.25s tid=0x00007ff680439000 nid=0x5a0b runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 cpu=13349.31ms elapsed=484197.25s tid=0x00007ff68043b800 nid=0x5a0c waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #17 daemon prio=9 os_prio=0 cpu=4154.09ms elapsed=484197.25s tid=0x00007ff680445800 nid=0x5a0d waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #23 daemon prio=9 os_prio=0 cpu=557.92ms elapsed=484197.25s tid=0x00007ff68044a000 nid=0x5a0e runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #24 daemon prio=9 os_prio=0 cpu=0.06ms elapsed=484197.20s tid=0x00007ff6804c3000 nid=0x5a10 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #25 daemon prio=8 os_prio=0 cpu=301.60ms elapsed=484197.19s tid=0x00007ff6804ce000 nid=0x5a12 in Object.wait()  [0x00007feded244000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6205e2f0> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
        at java.lang.Thread.run([email protected]/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:134)
"org.apache.hadoop.fs.FileSystem$Statistics$StatisticsDataReferenceCleaner" #30 daemon prio=5 os_prio=0 cpu=0.14ms elapsed=484194.24s tid=0x00007ff682206000 nid=0x5b66 in Object.wait()  [0x00007fecde6a4000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <0x00007fee6e5000f0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6e5000f0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:176)
        at org.apache.hadoop.fs.FileSystem$Statistics$StatisticsDataReferenceCleaner.run(FileSystem.java:3212)
        at java.lang.Thread.run([email protected]/Thread.java:834)

"java-sdk-http-connection-reaper" #32 daemon prio=5 os_prio=0 cpu=349.83ms elapsed=484192.91s tid=0x00007ff682576800 nid=0x5c8f waiting on condition  [0x00007fecdebb4000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep([email protected]/Native Method)
        at com.amazonaws.http.IdleConnectionReaper.run(IdleConnectionReaper.java:188)

"Cleaner-0" #237 daemon prio=8 os_prio=0 cpu=291.57ms elapsed=484191.45s tid=0x00007ff683403800 nid=0x5d6d in Object.wait()  [0x00007fedecc19000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait([email protected]/Native Method)
        - waiting on <no object reference available>
        at java.lang.ref.ReferenceQueue.remove([email protected]/ReferenceQueue.java:155)
        - waiting to re-lock in wait() <0x00007fee6e800570> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run([email protected]/CleanerImpl.java:148)
        at java.lang.Thread.run([email protected]/Thread.java:834)
        at jdk.internal.misc.InnocuousThread.run([email protected]/InnocuousThread.java:134)

"MonitorScheduler-0" #238 daemon prio=5 os_prio=0 cpu=88.51ms elapsed=484190.84s tid=0x00007ff6833fc800 nid=0x5d74 waiting on condition  [0x00007fedecd1a000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00007fee6e84aee0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:2081)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:1170)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take([email protected]/ScheduledThreadPoolExecutor.java:899)
        at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1054)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1114)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)
"parent-monitor-0" #247 daemon prio=5 os_prio=0 cpu=0.99ms elapsed=484190.22s tid=0x00007ff68352a800 nid=0x5d85 waiting on condition  [0x00007fe8b3dfc000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.Shutdown.halt0([email protected]/Native Method)
        at java.lang.Shutdown.halt([email protected]/Shutdown.java:152)
        - locked <0x00007fee621d7bf0> (a java.lang.Shutdown$Lock)
        at java.lang.Shutdown.exit([email protected]/Shutdown.java:166)
        - locked <0x00007fee621d7c00> (a java.lang.Shutdown$Lock)
        at java.lang.Runtime.exit([email protected]/Runtime.java:115)
        at java.lang.System.exit([email protected]/System.java:1746)
        at org.apache.druid.indexing.worker.executor.ExecutorLifecycle$1.run(ExecutorLifecycle.java:164)
        at java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Executors.java:515)
        at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)

"DestroyJavaVM" #463 prio=5 os_prio=0 cpu=7216.70ms elapsed=482936.25s tid=0x00007ff680019800 nid=0x5a02 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #466 daemon prio=9 os_prio=0 cpu=1.70ms elapsed=0.10s tid=0x00007fede8001000 nid=0xfd11 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VM Thread" os_prio=0 cpu=11984.02ms elapsed=484197.27s tid=0x00007ff680419800 nid=0x5a08 runnable  

"GC Thread#0" os_prio=0 cpu=3347.56ms elapsed=484197.30s tid=0x00007ff680044000 nid=0x5a03 runnable  

"GC Thread#1" os_prio=0 cpu=3543.94ms elapsed=484196.38s tid=0x00007fee00001000 nid=0x5a1e runnable  

"GC Thread#2" os_prio=0 cpu=3272.22ms elapsed=484196.38s tid=0x00007fee00002800 nid=0x5a1f runnable  

"GC Thread#3" os_prio=0 cpu=3355.05ms elapsed=484196.38s tid=0x00007fee00004000 nid=0x5a20 runnable  
"GC Thread#42" os_prio=0 cpu=3385.71ms elapsed=484196.38s tid=0x00007fee00046800 nid=0x5a47 runnable  

"G1 Main Marker" os_prio=0 cpu=9.86ms elapsed=484197.30s tid=0x00007ff680088800 nid=0x5a04 runnable  

"G1 Conc#0" os_prio=0 cpu=2674.73ms elapsed=484197.30s tid=0x00007ff68008a000 nid=0x5a05 runnable  

"G1 Conc#1" os_prio=0 cpu=2662.56ms elapsed=484196.12s tid=0x00007fee10001000 nid=0x5a7f runnable  

"G1 Conc#2" os_prio=0 cpu=2665.72ms elapsed=484196.12s tid=0x00007fee10002800 nid=0x5a80 runnable  

"G1 Conc#3" os_prio=0 cpu=2668.94ms elapsed=484196.12s tid=0x00007fee10004000 nid=0x5a82 runnable  
"G1 Refine#0" os_prio=0 cpu=-0.00ms elapsed=484197.29s tid=0x00007ff6803af000 nid=0x5a06 runnable  

"G1 Refine#1" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fee04001000 nid=0x95eb runnable  

"G1 Refine#2" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fe7580e0000 nid=0x95ec runnable  

"G1 Refine#3" os_prio=0 cpu=-0.00ms elapsed=483424.06s tid=0x00007fe76c0a0800 nid=0x95ed runnable  
"G1 Young RemSet Sampling" os_prio=0 cpu=288497.10ms elapsed=484197.29s tid=0x00007ff6803b1000 nid=0x5a07 runnable  
JNI global refs: 34, weak refs: 0

We added some additional logging in the code to surface non-daemon threads and it logged thread: nettyClientUtils-2-1,5,main as non daemon. However, I dont see this thread in the thread dump.
How can I identify what is blocking this process from exiting?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文