In src/hotspot/share/services/threadService.cpp,
ThreadSnapshot::initialize(ThreadsList * t_list, JavaThread* thread)
calls ThreadService::get_current_contended_monitor(thread) before checking the thread status.
This can assert with:
# Internal Error (/opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S128392/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/41b9616d-be93-4073-9914-cea1bdf51c63/runs/dda0431a-6601-4acf-a7ff-239577d6bb87/workspace/open/src/hotspot/share/runtime/thread.cpp:286), pid=19781, tid=19923
# assert(!thread->is_Java_thread() || JavaThread::cast(thread)->is_handshake_safe_for(Thread::current()) || !JavaThread::cast(thread)->on_thread_list() || SafepointSynchronize::is_at_safepoint() || ThreadsSMRSupport::is_a_protected_JavaThread_with_lock(JavaThread::cast(thread))) failed: possibility of dangling Thread pointer
Stack: [0x00007f207c9eb000,0x00007f207caeb000], sp=0x00007f207cae9630, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x17acab6] Thread::check_for_dangling_thread_pointer(Thread*)+0x106 (thread.cpp:290)
V [libjvm.so+0x17b9e5e] ThreadService::get_current_contended_monitor(JavaThread*)+0x2e (threadService.cpp:232)
V [libjvm.so+0x17bbd00] ThreadSnapshot::initialize(ThreadsList*, JavaThread*)+0x160 (threadService.cpp:919)
V [libjvm.so+0x17bc68e] ThreadDumpResult::add_thread_snapshot(JavaThread*)+0x7e (threadService.cpp:574)
V [libjvm.so+0x134f9bb] jmm_GetThreadInfo+0x5bb (management.cpp:1133)
j sun.management.ThreadImpl.getThreadInfo1([JI[Ljava/lang/management/ThreadInfo;)V+0 java.management@23-internal
j sun.management.ThreadImpl.getThreadInfo([JI)[Ljava/lang/management/ThreadInfo;+60 java.management@23-internal
j ThreadInfoTest4$MyGetThreadInfoThread.run()V+8
v ~StubRoutines::call_stub 0x00007f210405cd21
ThreadSnapshot::initialize(ThreadsList * t_list, JavaThread* thread)
calls ThreadService::get_current_contended_monitor(thread) before checking the thread status.
This can assert with:
# Internal Error (/opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S128392/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/41b9616d-be93-4073-9914-cea1bdf51c63/runs/dda0431a-6601-4acf-a7ff-239577d6bb87/workspace/open/src/hotspot/share/runtime/thread.cpp:286), pid=19781, tid=19923
# assert(!thread->is_Java_thread() || JavaThread::cast(thread)->is_handshake_safe_for(Thread::current()) || !JavaThread::cast(thread)->on_thread_list() || SafepointSynchronize::is_at_safepoint() || ThreadsSMRSupport::is_a_protected_JavaThread_with_lock(JavaThread::cast(thread))) failed: possibility of dangling Thread pointer
Stack: [0x00007f207c9eb000,0x00007f207caeb000], sp=0x00007f207cae9630, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x17acab6] Thread::check_for_dangling_thread_pointer(Thread*)+0x106 (thread.cpp:290)
V [libjvm.so+0x17b9e5e] ThreadService::get_current_contended_monitor(JavaThread*)+0x2e (threadService.cpp:232)
V [libjvm.so+0x17bbd00] ThreadSnapshot::initialize(ThreadsList*, JavaThread*)+0x160 (threadService.cpp:919)
V [libjvm.so+0x17bc68e] ThreadDumpResult::add_thread_snapshot(JavaThread*)+0x7e (threadService.cpp:574)
V [libjvm.so+0x134f9bb] jmm_GetThreadInfo+0x5bb (management.cpp:1133)
j sun.management.ThreadImpl.getThreadInfo1([JI[Ljava/lang/management/ThreadInfo;)V+0 java.management@23-internal
j sun.management.ThreadImpl.getThreadInfo([JI)[Ljava/lang/management/ThreadInfo;+60 java.management@23-internal
j ThreadInfoTest4$MyGetThreadInfoThread.run()V+8
v ~StubRoutines::call_stub 0x00007f210405cd21
- relates to
-
JDK-8346980 JVM crashes when Prometheus collects thread status information through actuator
-
- Open
-