-
Bug
-
Resolution: Unresolved
-
P3
-
23, 24
Test: erviceability/jvmti/vthread/CarrierThreadEventNotification/CarrierThreadEventNotification.java
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c:\sb\prod\1717635056\workspace\open\src\hotspot\share\runtime\javaThread.cpp:400), pid=55024, tid=35532
# fatal error: LEAF method calling lock?
#
# JRE version: Java(TM) SE Runtime Environment (23.0+26) (fastdebug build 23-ea+26-2242)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-ea+26-2242, mixed mode, sharing, tiered, compressed class ptrs, z gc, windows-amd64)
--------------- T H R E A D ---------------
Current thread (0x0000016e9b6e8e60): JavaThread "ForkJoinPool-1-worker-1" daemon [_thread_in_Java, id=35532, stack(0x0000002711600000,0x0000002711700000) (1024K)]
Stack: [0x0000002711600000,0x0000002711700000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc94d51] os::win32::platform_print_native_stack+0x101 (os_windows_x86.cpp:235)
V [jvm.dll+0xf5910b] VMError::report+0x149b (vmError.cpp:1010)
V [jvm.dll+0xf5b7ae] VMError::report_and_die+0x80e (vmError.cpp:1845)
V [jvm.dll+0x5579ae] report_fatal+0x7e (debug.cpp:214)
V [jvm.dll+0x7f8aae] JavaThread::check_for_valid_safepoint_state+0xce (javaThread.cpp:400)
V [jvm.dll+0xc2d662] Mutex::check_safepoint_state+0x82 (mutex.cpp:78)
V [jvm.dll+0xc2d77a] Mutex::lock+0x3a (mutex.cpp:121)
V [jvm.dll+0xa404fe] JvmtiThreadState::state_for+0xee (jvmtiThreadState.inline.hpp:121)
V [jvm.dll+0xa51060] JvmtiEventControllerPrivate::thread_started+0x1a0 (jvmtiEventController.cpp:767)
V [jvm.dll+0xa54179] JvmtiExport::get_jvmti_thread_state+0x89 (jvmtiExport.cpp:427)
V [jvm.dll+0xa5ab0d] JvmtiExport::post_method_exit+0x5d (jvmtiExport.cpp:1848)
V [jvm.dll+0x7c0649] InterpreterRuntime::post_method_exit+0xb9 (interpreterRuntime.cpp:1239)
C 0x0000016c90ee004d (no source info available)
Code in JavaThread::check_for_valid_safepoint_state:
if (thread_state() != _thread_in_vm) {
fatal("LEAF method calling lock?");
}
But from the stack we originate from InterpreterRuntime::post_method_exit which is a JRT_BLOCK_ENTRY which means we are still _thread_in_Java not _thread_in_VM.
This is a new test added byJDK-8311177
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c:\sb\prod\1717635056\workspace\open\src\hotspot\share\runtime\javaThread.cpp:400), pid=55024, tid=35532
# fatal error: LEAF method calling lock?
#
# JRE version: Java(TM) SE Runtime Environment (23.0+26) (fastdebug build 23-ea+26-2242)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-ea+26-2242, mixed mode, sharing, tiered, compressed class ptrs, z gc, windows-amd64)
--------------- T H R E A D ---------------
Current thread (0x0000016e9b6e8e60): JavaThread "ForkJoinPool-1-worker-1" daemon [_thread_in_Java, id=35532, stack(0x0000002711600000,0x0000002711700000) (1024K)]
Stack: [0x0000002711600000,0x0000002711700000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0xc94d51] os::win32::platform_print_native_stack+0x101 (os_windows_x86.cpp:235)
V [jvm.dll+0xf5910b] VMError::report+0x149b (vmError.cpp:1010)
V [jvm.dll+0xf5b7ae] VMError::report_and_die+0x80e (vmError.cpp:1845)
V [jvm.dll+0x5579ae] report_fatal+0x7e (debug.cpp:214)
V [jvm.dll+0x7f8aae] JavaThread::check_for_valid_safepoint_state+0xce (javaThread.cpp:400)
V [jvm.dll+0xc2d662] Mutex::check_safepoint_state+0x82 (mutex.cpp:78)
V [jvm.dll+0xc2d77a] Mutex::lock+0x3a (mutex.cpp:121)
V [jvm.dll+0xa404fe] JvmtiThreadState::state_for+0xee (jvmtiThreadState.inline.hpp:121)
V [jvm.dll+0xa51060] JvmtiEventControllerPrivate::thread_started+0x1a0 (jvmtiEventController.cpp:767)
V [jvm.dll+0xa54179] JvmtiExport::get_jvmti_thread_state+0x89 (jvmtiExport.cpp:427)
V [jvm.dll+0xa5ab0d] JvmtiExport::post_method_exit+0x5d (jvmtiExport.cpp:1848)
V [jvm.dll+0x7c0649] InterpreterRuntime::post_method_exit+0xb9 (interpreterRuntime.cpp:1239)
C 0x0000016c90ee004d (no source info available)
Code in JavaThread::check_for_valid_safepoint_state:
if (thread_state() != _thread_in_vm) {
fatal("LEAF method calling lock?");
}
But from the stack we originate from InterpreterRuntime::post_method_exit which is a JRT_BLOCK_ENTRY which means we are still _thread_in_Java not _thread_in_VM.
This is a new test added by
- relates to
-
JDK-8311177 Switching to interpreter only mode in carrier thread can lead to crashes
- Resolved