-
Bug
-
Resolution: Unresolved
-
P3
-
25
-
x86_64
-
linux
The following test failed in the JDK25 CI:
applications/runthese/RunThese30M.java
Here's a snippet from the log file:
[2025-06-05T15:19:05.538134385Z] Gathering output for process 32035
[2025-06-05T15:19:11.724201934Z] Waiting for completion for process 32035
[2025-06-05T15:19:11.724347782Z] Waiting for completion finished for process 32035
[stress.process.out] #
[stress.process.out] # A fatal error has been detected by the Java Runtime Environment:
[stress.process.out] #
[stress.process.out] # Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461), pid=28961, tid=32196
[stress.process.out] # assert(nm->insts_contains_inclusive(original_pc)) failed: original PC must be in the main code section of the compiled method (or must be immediately following it) original_pc: 0x0000000000000000 unextended_sp: 0x00007f22971f0690 name: nmethod
[stress.process.out] #
[stress.process.out] # JRE version: Java(TM) SE Runtime Environment (25.0+26) (fastdebug build 25-ea+26-LTS-3324)
[stress.process.out] # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-ea+26-LTS-3324, compiled mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
[stress.process.out] # Problematic frame:
[stress.process.out] # V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9
[stress.process.out] #
[stress.process.out] # Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/core.28961)
[stress.process.out] #
[stress.process.out] # JFR recording file will be written. Location: /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/hs_err_pid28961.jfr
[stress.process.out] #
[stress.process.out] Unsupported internal testing APIs have been used.
[stress.process.out]
[stress.process.out] # An error report file with more information is saved as:
[stress.process.out] # /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/hs_err_pid28961.log
[stress.process.out] [thread 32074 also had an error]
[stress.process.out] [thread 31585 also had an error]
[stress.process.out] [thread 32141 also had an error]
[stress.process.out] [thread 32189 also had an error]
[stress.process.out] #
[stress.process.out] # If you would like to submit a bug report, please visit:
[stress.process.out] # https://bugreport.java.com/bugreport/crash.jsp
[stress.process.out] #
[2025-06-05T15:19:58.205976017Z] Gathering output for process 32283
[2025-06-05T15:19:58.424917669Z] Waiting for completion for process 32283
[2025-06-05T15:19:58.425021517Z] Waiting for completion finished for process 32283
[2025-06-05T15:20:11.727607373Z] Gathering output for process 32349
[2025-06-05T15:20:11.739110122Z] Waiting for completion for process 32349
[2025-06-05T15:20:11.739180355Z] Waiting for completion finished for process 32349
[2025-06-05T15:20:11.740999250Z] Gathering output for process 32352
[2025-06-05T15:20:17.925972852Z] Waiting for completion for process 32352
[2025-06-05T15:20:17.926083262Z] Waiting for completion finished for process 32352
Stress process failed. See stress.process.err/stress.process.out files for details.
Here's the crashing thread's stack:
--------------- T H R E A D ---------------
Current thread (0x00007f21f83f7c10): JavaThread "Thread-1220" daemon [_thread_in_Java, id=32196, stack(0x00007f22970f2000,0x00007f22971f2000) (1024K)]
Stack: [0x00007f22970f2000,0x00007f22971f2000], sp=0x00007f22971ef6e8, free space=1013k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9 (frame_x86.cpp:461)
V [libjvm.so+0x1762bea] os::get_sender_for_C_frame(frame*)+0x6a (frame_x86.inline.hpp:114)
V [libjvm.so+0x1767942] os::get_native_stack(unsigned char**, int, int)+0x222 (os_posix.cpp:251)
V [libjvm.so+0x6517b5] AllocateHeap(unsigned long, MemTag, AllocFailStrategy::AllocFailEnum)+0x75 (allocation.cpp:50)
V [libjvm.so+0x18fd8f9] SharedRuntime::handle_unsafe_access(JavaThread*, unsigned char*)+0x39 (allocation.hpp:127)
V [libjvm.so+0x17632d4] PosixSignals::pd_hotspot_signal_handler(int, siginfo*, ucontext*, JavaThread*)+0x344 (os_linux_x86.cpp:284)
V [libjvm.so+0x192aba1] JVM_handle_linux_signal+0x1d1 (signals_posix.cpp:642)
C [libc.so.6+0x36400]
[error occurred during error reporting (printing native stack (with source info)), id 0xe0000000, Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461)]
Retrying call stack printing without source information...
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9 (frame_x86.cpp:461)
V [libjvm.so+0x1762bea] os::get_sender_for_C_frame(frame*)+0x6a
V [libjvm.so+0x1767942] os::get_native_stack(unsigned char**, int, int)+0x222
V [libjvm.so+0x6517b5] AllocateHeap(unsigned long, MemTag, AllocFailStrategy::AllocFailEnum)+0x75
V [libjvm.so+0x18fd8f9] SharedRuntime::handle_unsafe_access(JavaThread*, unsigned char*)+0x39
V [libjvm.so+0x17632d4] PosixSignals::pd_hotspot_signal_handler(int, siginfo*, ucontext*, JavaThread*)+0x344
V [libjvm.so+0x192aba1] JVM_handle_linux_signal+0x1d1
C [libc.so.6+0x36400]
[error occurred during error reporting (retry printing native stack (no source info)), id 0xe0000000, Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461)]
This failure mode appears to be a close match for the following
issue that was closed as a duplicate:
JDK-8351028 RunThese30M: assert(nm->insts_contains_inclusive(original_pc)) failed: original PC must be in the main code section of the compiled method (or must be immediately following it)
However, this failure did not happen with Graal so I'm opening a new issue
as requested in JDK-8351028:
https://bugs.openjdk.org/browse/JDK-8351028?focusedId=14777915&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14777915
Tobias Hartmann added a comment - 2025-05-08 03:04 - Restricted to Confidential - edited
Thanks for checking [~never]. The attached hs_err file is actually from a failure that we don't see anymore, I think. The latest failures all have JFR on the stack trace. I attached a corresponding file (hs_err_pid17384.log).
https://mach5.us.oracle.com/mdash/testHistory?search=status%3Afailed%20AND%20reasons.details%3A*compiled*method*or*must*be*immediately*following*
Update: Ah, I see that https://github.com/openjdk/jdk/commit/90f0f1b88badbf1f72d7b9434621457aa47cde30 was pushed very recently. So yes, if that's really the root cause, let's close as duplicate and open a new bug if we observe a non-Graal issue again.
applications/runthese/RunThese30M.java
Here's a snippet from the log file:
[2025-06-05T15:19:05.538134385Z] Gathering output for process 32035
[2025-06-05T15:19:11.724201934Z] Waiting for completion for process 32035
[2025-06-05T15:19:11.724347782Z] Waiting for completion finished for process 32035
[stress.process.out] #
[stress.process.out] # A fatal error has been detected by the Java Runtime Environment:
[stress.process.out] #
[stress.process.out] # Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461), pid=28961, tid=32196
[stress.process.out] # assert(nm->insts_contains_inclusive(original_pc)) failed: original PC must be in the main code section of the compiled method (or must be immediately following it) original_pc: 0x0000000000000000 unextended_sp: 0x00007f22971f0690 name: nmethod
[stress.process.out] #
[stress.process.out] # JRE version: Java(TM) SE Runtime Environment (25.0+26) (fastdebug build 25-ea+26-LTS-3324)
[stress.process.out] # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-ea+26-LTS-3324, compiled mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
[stress.process.out] # Problematic frame:
[stress.process.out] # V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9
[stress.process.out] #
[stress.process.out] # Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/core.28961)
[stress.process.out] #
[stress.process.out] # JFR recording file will be written. Location: /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/hs_err_pid28961.jfr
[stress.process.out] #
[stress.process.out] Unsupported internal testing APIs have been used.
[stress.process.out]
[stress.process.out] # An error report file with more information is saved as:
[stress.process.out] # /opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S383720/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/055a71ea-6d83-4807-967f-2f9d68766275/runs/c3f550b3-9d8e-4be1-9b4e-b5256ebda3fc/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_runthese_RunThese30M_java/scratch/0/hs_err_pid28961.log
[stress.process.out] [thread 32074 also had an error]
[stress.process.out] [thread 31585 also had an error]
[stress.process.out] [thread 32141 also had an error]
[stress.process.out] [thread 32189 also had an error]
[stress.process.out] #
[stress.process.out] # If you would like to submit a bug report, please visit:
[stress.process.out] # https://bugreport.java.com/bugreport/crash.jsp
[stress.process.out] #
[2025-06-05T15:19:58.205976017Z] Gathering output for process 32283
[2025-06-05T15:19:58.424917669Z] Waiting for completion for process 32283
[2025-06-05T15:19:58.425021517Z] Waiting for completion finished for process 32283
[2025-06-05T15:20:11.727607373Z] Gathering output for process 32349
[2025-06-05T15:20:11.739110122Z] Waiting for completion for process 32349
[2025-06-05T15:20:11.739180355Z] Waiting for completion finished for process 32349
[2025-06-05T15:20:11.740999250Z] Gathering output for process 32352
[2025-06-05T15:20:17.925972852Z] Waiting for completion for process 32352
[2025-06-05T15:20:17.926083262Z] Waiting for completion finished for process 32352
Stress process failed. See stress.process.err/stress.process.out files for details.
Here's the crashing thread's stack:
--------------- T H R E A D ---------------
Current thread (0x00007f21f83f7c10): JavaThread "Thread-1220" daemon [_thread_in_Java, id=32196, stack(0x00007f22970f2000,0x00007f22971f2000) (1024K)]
Stack: [0x00007f22970f2000,0x00007f22971f2000], sp=0x00007f22971ef6e8, free space=1013k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9 (frame_x86.cpp:461)
V [libjvm.so+0x1762bea] os::get_sender_for_C_frame(frame*)+0x6a (frame_x86.inline.hpp:114)
V [libjvm.so+0x1767942] os::get_native_stack(unsigned char**, int, int)+0x222 (os_posix.cpp:251)
V [libjvm.so+0x6517b5] AllocateHeap(unsigned long, MemTag, AllocFailStrategy::AllocFailEnum)+0x75 (allocation.cpp:50)
V [libjvm.so+0x18fd8f9] SharedRuntime::handle_unsafe_access(JavaThread*, unsigned char*)+0x39 (allocation.hpp:127)
V [libjvm.so+0x17632d4] PosixSignals::pd_hotspot_signal_handler(int, siginfo*, ucontext*, JavaThread*)+0x344 (os_linux_x86.cpp:284)
V [libjvm.so+0x192aba1] JVM_handle_linux_signal+0x1d1 (signals_posix.cpp:642)
C [libc.so.6+0x36400]
[error occurred during error reporting (printing native stack (with source info)), id 0xe0000000, Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461)]
Retrying call stack printing without source information...
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xd8ad99] frame::verify_deopt_original_pc(nmethod*, long*)+0xa9 (frame_x86.cpp:461)
V [libjvm.so+0x1762bea] os::get_sender_for_C_frame(frame*)+0x6a
V [libjvm.so+0x1767942] os::get_native_stack(unsigned char**, int, int)+0x222
V [libjvm.so+0x6517b5] AllocateHeap(unsigned long, MemTag, AllocFailStrategy::AllocFailEnum)+0x75
V [libjvm.so+0x18fd8f9] SharedRuntime::handle_unsafe_access(JavaThread*, unsigned char*)+0x39
V [libjvm.so+0x17632d4] PosixSignals::pd_hotspot_signal_handler(int, siginfo*, ucontext*, JavaThread*)+0x344
V [libjvm.so+0x192aba1] JVM_handle_linux_signal+0x1d1
C [libc.so.6+0x36400]
[error occurred during error reporting (retry printing native stack (no source info)), id 0xe0000000, Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S121083/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/05e968ad-8bba-478a-b05e-31e05d88d04b/runs/bd4451c0-744f-425d-8c59-e0b08306739d/workspace/open/src/hotspot/cpu/x86/frame_x86.cpp:461)]
This failure mode appears to be a close match for the following
issue that was closed as a duplicate:
JDK-8351028 RunThese30M: assert(nm->insts_contains_inclusive(original_pc)) failed: original PC must be in the main code section of the compiled method (or must be immediately following it)
However, this failure did not happen with Graal so I'm opening a new issue
as requested in JDK-8351028:
https://bugs.openjdk.org/browse/JDK-8351028?focusedId=14777915&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14777915
Tobias Hartmann added a comment - 2025-05-08 03:04 - Restricted to Confidential - edited
Thanks for checking [~never]. The attached hs_err file is actually from a failure that we don't see anymore, I think. The latest failures all have JFR on the stack trace. I attached a corresponding file (hs_err_pid17384.log).
https://mach5.us.oracle.com/mdash/testHistory?search=status%3Afailed%20AND%20reasons.details%3A*compiled*method*or*must*be*immediately*following*
Update: Ah, I see that https://github.com/openjdk/jdk/commit/90f0f1b88badbf1f72d7b9434621457aa47cde30 was pushed very recently. So yes, if that's really the root cause, let's close as duplicate and open a new bug if we observe a non-Graal issue again.