-
Bug
-
Resolution: Fixed
-
P3
-
21, 24, 25
-
b16
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (..\open\src\hotspot\share\opto\escape.cpp:4788), pid=28416, tid=31996
# assert(false) failed: EA: missing memory path
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (slowdebug build 25-internal-LTS)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 25-internal-LTS-, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc)
# Problematic frame:
# V [jvm.dll+0x8ec789] ConnectionGraph::split_unique_types+0x2409
#
--------------- T H R E A D ---------------
Current thread (0x000001ee2752dd20): JavaThread "C2 CompilerThread2" daemon
Current CompileTask:
C2:27036 1966 ! 4 java.lang.VirtualThread::run (173 bytes)
Stack: [0x0000006cea400000,0x0000006cea500000], sp=0x0000006cea4fa5a0, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x8ec789] ConnectionGraph::split_unique_types+0x2409 (escape.cpp:4788)
V [jvm.dll+0x8f0a76] ConnectionGraph::compute_escape+0x11e6 (escape.cpp:397)
V [jvm.dll+0x8f55b2] ConnectionGraph::do_analysis+0xf2 (escape.cpp:118)
V [jvm.dll+0x66ef0d] Compile::Optimize+0x85d (compile.cpp:2381)
V [jvm.dll+0x66c0c3] Compile::Compile+0x1663 (compile.cpp:859)
V [jvm.dll+0x554d20] C2Compiler::compile_method+0x1b0 (c2compiler.cpp:144)
V [jvm.dll+0x68495f] CompileBroker::invoke_compiler_on_method+0x8cf (compileBroker.cpp:2334)
V [jvm.dll+0x687d3f] CompileBroker::compiler_thread_loop+0x36f (compileBroker.cpp:1976)
V [jvm.dll+0x6a42fb] CompilerThread::thread_entry+0x6b (compilerThread.cpp:68)
V [jvm.dll+0xafe726] JavaThread::thread_main_inner+0x146 (javaThread.cpp:777)
V [jvm.dll+0xafe5d1] JavaThread::run+0x181 (javaThread.cpp:762)
V [jvm.dll+0x1249eea] Thread::call_run+0x18a (thread.cpp:236)
V [jvm.dll+0x1000159] thread_native_entry+0x129 (os_windows.cpp:566)
C [ucrtbase.dll+0x21bb2] (no source info available)
C [KERNEL32.DLL+0x17344] (no source info available)
C [ntdll.dll+0x526b1] (no source info available)
The assert is because C2's Escape Analysis does not recognize a pattern where one input of memory Phi node is a MergeMem node, and another is a RAW store.
This pattern is created by the jdk.jfr.internal.JVM.commit() intrinsic, which is inlined because of inlining the JFR event jdk.VirtualThreadStart.
As a result, EA complains about a strange memory graph.
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (..\open\src\hotspot\share\opto\escape.cpp:4788), pid=28416, tid=31996
# assert(false) failed: EA: missing memory path
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (slowdebug build 25-internal-LTS)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 25-internal-LTS-, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc)
# Problematic frame:
# V [jvm.dll+0x8ec789] ConnectionGraph::split_unique_types+0x2409
#
--------------- T H R E A D ---------------
Current thread (0x000001ee2752dd20): JavaThread "C2 CompilerThread2" daemon
Current CompileTask:
C2:27036 1966 ! 4 java.lang.VirtualThread::run (173 bytes)
Stack: [0x0000006cea400000,0x0000006cea500000], sp=0x0000006cea4fa5a0, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x8ec789] ConnectionGraph::split_unique_types+0x2409 (escape.cpp:4788)
V [jvm.dll+0x8f0a76] ConnectionGraph::compute_escape+0x11e6 (escape.cpp:397)
V [jvm.dll+0x8f55b2] ConnectionGraph::do_analysis+0xf2 (escape.cpp:118)
V [jvm.dll+0x66ef0d] Compile::Optimize+0x85d (compile.cpp:2381)
V [jvm.dll+0x66c0c3] Compile::Compile+0x1663 (compile.cpp:859)
V [jvm.dll+0x554d20] C2Compiler::compile_method+0x1b0 (c2compiler.cpp:144)
V [jvm.dll+0x68495f] CompileBroker::invoke_compiler_on_method+0x8cf (compileBroker.cpp:2334)
V [jvm.dll+0x687d3f] CompileBroker::compiler_thread_loop+0x36f (compileBroker.cpp:1976)
V [jvm.dll+0x6a42fb] CompilerThread::thread_entry+0x6b (compilerThread.cpp:68)
V [jvm.dll+0xafe726] JavaThread::thread_main_inner+0x146 (javaThread.cpp:777)
V [jvm.dll+0xafe5d1] JavaThread::run+0x181 (javaThread.cpp:762)
V [jvm.dll+0x1249eea] Thread::call_run+0x18a (thread.cpp:236)
V [jvm.dll+0x1000159] thread_native_entry+0x129 (os_windows.cpp:566)
C [ucrtbase.dll+0x21bb2] (no source info available)
C [KERNEL32.DLL+0x17344] (no source info available)
C [ntdll.dll+0x526b1] (no source info available)
The assert is because C2's Escape Analysis does not recognize a pattern where one input of memory Phi node is a MergeMem node, and another is a RAW store.
This pattern is created by the jdk.jfr.internal.JVM.commit() intrinsic, which is inlined because of inlining the JFR event jdk.VirtualThreadStart.
As a result, EA complains about a strange memory graph.
- caused by
-
JDK-8303134 JFR: Missing stack trace during chunk rotation stress
-
- Closed
-
- relates to
-
JDK-8347997 assert(false) failed: EA: missing memory path
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/721ef767
-
Review(master) openjdk/jdk/24192