This code uses a load barrier while in blocked state:
V [libjvm.so+0x32616c] AccessInternal::check_access_thread_state()+0xbc
V [libjvm.so+0xb306c2] ContinuationEntry::cont_oop() const+0x32
V [libjvm.so+0xb0c6a6] Continuation::pin(JavaThread*)+0x36
V [libjvm.so+0x1333551] JvmtiRawMonitor::simple_enter(Thread*)+0x111
V [libjvm.so+0x1334c05] JvmtiRawMonitor::raw_enter(Thread*)+0x375
V [libjvm.so+0x12ee4cb] JvmtiEnv::RawMonitorEnter(JvmtiRawMonitor*)+0x3b
C [libMethodExitTest.so+0x2e5a] VirtualThreadStart+0x7a
V [libjvm.so+0x1316558] JvmtiExport::post_vthread_start(_jobject*)+0x138
V [libjvm.so+0x1144180] JVM_VirtualThreadMountEnd+0x220
j java.lang.VirtualThread.notifyJvmtiMountEnd(Z)V+0 java.base@19-internal
Found with extra checks in the Access API, while running MethodExitTest (amoung a bunch of other JVMTI tests that fail similarily).
V [libjvm.so+0x32616c] AccessInternal::check_access_thread_state()+0xbc
V [libjvm.so+0xb306c2] ContinuationEntry::cont_oop() const+0x32
V [libjvm.so+0xb0c6a6] Continuation::pin(JavaThread*)+0x36
V [libjvm.so+0x1333551] JvmtiRawMonitor::simple_enter(Thread*)+0x111
V [libjvm.so+0x1334c05] JvmtiRawMonitor::raw_enter(Thread*)+0x375
V [libjvm.so+0x12ee4cb] JvmtiEnv::RawMonitorEnter(JvmtiRawMonitor*)+0x3b
C [libMethodExitTest.so+0x2e5a] VirtualThreadStart+0x7a
V [libjvm.so+0x1316558] JvmtiExport::post_vthread_start(_jobject*)+0x138
V [libjvm.so+0x1144180] JVM_VirtualThreadMountEnd+0x220
j java.lang.VirtualThread.notifyJvmtiMountEnd(Z)V+0 java.base@19-internal
Found with extra checks in the Access API, while running MethodExitTest (amoung a bunch of other JVMTI tests that fail similarily).