-
Bug
-
Resolution: Fixed
-
P3
-
21, 22, 23
-
b19
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8334175 | 21.0.5-oracle | Tobias Hartmann | P3 | Resolved | Fixed | b01 |
JDK-8334842 | 21.0.5 | Martin Doerr | P3 | Resolved | Fixed | b01 |
I now found a fuzzer case which can be traced back to
We might need to revisit the fix of
Note that (at least after an initial analysis) the full fix for missing Assertion Predicates (JDK-8288981) does not help here since we have an Assertion Predicate in place - but it's unable to fold the dead path away.
To reproduce:
$ java -XX:-TieredCompilation -Xcomp -XX:CompileOnly=Test::test Test.java
$ java -XX:-TieredCompilation -Xcomp -XX:CompileOnly=Reduced::test Reduced.java
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/opt/mach5/mesos/work_dir/slaves/0db9c48f-6638-40d0-9a4b-bd9cc7533eb8-S9853/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/56009ff3-1ef9-43a1-9ae7-76a9d407dde0/runs/c23ecd31-3420-4318-b56a-b489ae5be3b0/workspace/open/src/hotspot/share/opto/loopopts.cpp:1675), pid=78706, tid=78753
# assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
#
# JRE version: Java(TM) SE Runtime Environment (23.0+7) (fastdebug build 23-ea+7-448)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-ea+7-448, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x12c2f48] PhaseIdealLoop::try_sink_out_of_loop(Node*)+0xbb8
...........
Command Line: -XX:CompileCommand=quiet -XX:-TieredCompilation -Xcomp -XX:CompileOnly=Test::* Test
...........
Current CompileTask:
C2:655 6 b Test::lMeth (286 bytes)
Stack: [0x00007f0104e00000,0x00007f0104f00000], sp=0x00007f0104efa9c0, free space=1002k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x12c2f48] PhaseIdealLoop::try_sink_out_of_loop(Node*)+0xbb8 (loopopts.cpp:1675)
V [libjvm.so+0x12c3023] PhaseIdealLoop::split_if_with_blocks_post(Node*)+0x83
V [libjvm.so+0x12c3896] PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)+0x96
V [libjvm.so+0x12b64a7] PhaseIdealLoop::build_and_optimize()+0xe87
V [libjvm.so+0x9f3f08] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x388
V [libjvm.so+0x9ecb55] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x75
V [libjvm.so+0x9ef301] Compile::Optimize()+0xe21
V [libjvm.so+0x9f2924] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1b44
V [libjvm.so+0x846ce5] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1d5
V [libjvm.so+0x9fe61c] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x92c
V [libjvm.so+0x9ff2a8] CompileBroker::compiler_thread_loop()+0x468
V [libjvm.so+0xec18dc] JavaThread::thread_main_inner()+0xcc
V [libjvm.so+0x17ae046] Thread::call_run()+0xb6
V [libjvm.so+0x14b43b7] thread_native_entry(Thread*)+0x127
- backported by
-
JDK-8334175 C2: Broken graph after not skipping CastII node anymore for Assertion Predicates after JDK-8309902
- Resolved
-
JDK-8334842 C2: Broken graph after not skipping CastII node anymore for Assertion Predicates after JDK-8309902
- Resolved
- is blocked by
-
JDK-8305636 Expand and clean up predicate classes and move them into separate files
- Resolved
-
JDK-8319372 C2 compilation fails with "Bad immediate dominator info"
- Closed
- relates to
-
JDK-8282592 C2: assert(false) failed: graph should be schedulable
- Resolved
-
JDK-8309902 C2: assert(false) failed: Bad graph detected in build_loop_late after JDK-8305189
- Resolved
- links to
-
Commit openjdk/jdk21u-dev/5c3dbbfc
-
Commit openjdk/jdk/9fd78022
-
Review openjdk/jdk21u-dev/734
-
Review openjdk/jdk/18724