JDK-8333681 : Test crashed - fatal error: LEAF method calling lock?
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jvmti
  • Affected Version: 23,24
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2024-06-06
  • Updated: 2025-11-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 27
27Unresolved
Related Reports
Relates :  
Sub Tasks
JDK-8333931 :  
Description
Test: serviceability/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 by JDK-8311177



Comments
ILW=HLM=P3
12-06-2024

Problem-listed in both 23 and 24.
11-06-2024

Failing quite regularly. Please ProblemList this new test while the issue is investigated.
09-06-2024