JDK-8359602 : Ideal optimizations depending on input type are missed because of missing notification mechanism from CCP
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 26
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2025-06-15
  • Updated: 2025-07-15
  • Resolved: 2025-07-03
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 26
26 b05Fixed
Related Reports
Relates :  
Relates :  
Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S510190/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/d8829db3-91ed-4980-bd25-3d4ae9bd65e8/runs/39b2e7d2-e8f4-4ef6-a9b9-35f0e5aaa09c/workspace/open/src/hotspot/share/opto/node.hpp:458), pid=3449556, tid=3449574
#  assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it
#
# JRE version: Java(TM) SE Runtime Environment (26.0+3) (fastdebug build 26-ea+3-148)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-ea+3-148, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V  [libjvm.so+0x598258]  Node::set_req(unsigned int, Node*)+0x4b8
#
# Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /tmp/fuzzer.tmp.o47rIF5jqT/core.3449556)
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------

Command Line: -Xmx1G -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:StressSeed=1099106925 -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+VerifyLoopOptimizations -XX:VerifyIterativeGVN=1110 -XX:MaxRAMPercentage=6.25 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/24/36/bundles/linux-aarch64/jdk-24_linux-aarch64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/d2398cde-9325-49c3-b030-8961a4f0a253-S510167/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/ee27b7f5-b760-4913-b4f4-cf5532704e09/runs/9ec61dd4-1e58-42fa-a414-8d91d2cdf379/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_javafuzzer_MediumTest_java/tmp Test

Host: AArch64, 8 cores, 31G, Oracle Linux Server release 8.10
Time: Sat Jun 14 06:43:51 2025 UTC elapsed time: 0.279903 seconds (0d 0h 0m 0s)

---------------  T H R E A D  ---------------

Current thread (0x0000ffff981f73c0):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=3449574, stack(0x0000ffff8c3c1000,0x0000ffff8c5bf000) (2040K)]


Current CompileTask:
C2:279    5   !b        Test::mainTest (666 bytes)

Stack: [0x0000ffff8c3c1000,0x0000ffff8c5bf000],  sp=0x0000ffff8c5b98d0,  free space=2018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x598258]  Node::set_req(unsigned int, Node*)+0x4b8  (node.hpp:458)
V  [libjvm.so+0xaf6240]  ModINode::Ideal(PhaseGVN*, bool)+0x1d4  (divnode.cpp:1098)
V  [libjvm.so+0x15530d4]  PhaseIterGVN::verify_Ideal_for(Node*, bool)+0x128  (phaseX.cpp:1822)
V  [libjvm.so+0x1553ccc]  PhaseIterGVN::verify_optimize()+0x6ac  (phaseX.cpp:1088)
V  [libjvm.so+0x1554930]  PhaseIterGVN::optimize()+0x290  (phaseX.cpp:1069)
V  [libjvm.so+0x97c3ec]  Compile::Optimize()+0x86c  (compile.cpp:2503)
V  [libjvm.so+0x97ec18]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1638  (compile.cpp:868)
V  [libjvm.so+0x7b4520]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x2bc  (c2compiler.cpp:141)
V  [libjvm.so+0x98d858]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x9d4  (compileBroker.cpp:2323)
V  [libjvm.so+0x98e4ec]  CompileBroker::compiler_thread_loop()+0x40c  (compileBroker.cpp:1967)
V  [libjvm.so+0xe76928]  JavaThread::thread_main_inner()+0x108  (javaThread.cpp:773)
V  [libjvm.so+0x17df68c]  Thread::call_run()+0xac  (thread.cpp:243)
V  [libjvm.so+0x14c805c]  thread_native_entry(Thread*)+0x12c  (os_linux.cpp:868)
C  [libpthread.so.0+0x7950]  start_thread+0x190

Similar failure was recently fixed by JDK-8353345
Comments
Changeset: c75df634 Branch: master Author: BenoƮt Maillard <bmaillard@openjdk.org> Committer: Emanuel Peter <epeter@openjdk.org> Date: 2025-07-03 07:28:11 +0000 URL: https://git.openjdk.org/jdk/commit/c75df634be9a0073fa246d42e5c362a09f1734f3
03-07-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/26017 Date: 2025-06-27 10:59:57 +0000
30-06-2025

ILW = C2 assertion failure in IGVN verification only affecting debug, single fuzzer test and only with -XX:VerifyIterativeGVN=1110, no workaround but use different value for -XX:VerifyIterativeGVN = MLM = P4
16-06-2025

I simplified the test: java -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,TestSimple::test -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -Xcomp -XX:VerifyIterativeGVN=1110 TestSimple.java
16-06-2025

Reproducible with attached Test: java -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,*Test*::* -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:StressSeed=1099106925 -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 Test.java
16-06-2025

This is an existing issue found by the new verification code from JDK-8347273. It was enabled by default with JDK-8359355. I used JDK-8359494 for backing out JDK-8359355 again. The issue should still be fixed, re-opening this issue.
16-06-2025

I now see JDK-8359494 was already filed.
16-06-2025