Details
-
Bug
-
Resolution: Fixed
-
P4
-
17, 20
-
b27
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8298861 | 17.0.7-oracle | Tobias Hartmann | P4 | Resolved | Fixed | b01 |
JDK-8300219 | 17.0.7 | Goetz Lindenmaier | P4 | Resolved | Fixed | b01 |
Description
When I last debugged the test, it seemed to create an infinite irreducible loop, that did not have a NeverBranch node inserted. That was also against my assumption at the time. But I was able to work around that. Now it seems to be triggered in maiinline already.
Reproduce it:
java -jar ~/Documents/asmtools-7.0-build/release/lib/asmtools.jar jasm TestIrreducibleInfiniteNoNeverBranch.jasm
java -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:CompileCommand=compileonly,TestIrreducibleInfiniteNoNeverBranch::test* -XX:-TieredCompilation -XX:-RenumberLiveNodes -Xbatch -Xcomp -XX:PerMethodTrapLimit=0 -XX:+TraceLoopOpts TestIrreducibleInfiniteNoNeverBranch
I vaguely remember that -XX:PerMethodTrapLimit=0 was required to create this graph.
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/loopnode.cpp:4300
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/emanuel/Documents/fork2-jdk/open/src/hotspot/share/opto/loopnode.cpp:4300), pid=1154129, tid=1154142
# assert(_ltree_root->_child == __null || C->has_loops() || only_has_infinite_loops() || C->has_exception_backedge()) failed: parsing found no loops but there are some
#
# JRE version: Java(TM) SE Runtime Environment (20.0) (slowdebug build 20-internal-2022-11-25-1142101.emanuel...)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 20-internal-2022-11-25-1142101.emanuel..., compiled mode, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xf685e3] PhaseIdealLoop::build_and_optimize()+0x353
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /home/emanuel/Documents/debug-tools/bytecode-fuzzer/core.1154129)
#
# An error report file with more information is saved as:
# /home/emanuel/Documents/debug-tools/bytecode-fuzzer/hs_err_pid1154129.log
#
# Compiler replay data is saved as:
# /home/emanuel/Documents/debug-tools/bytecode-fuzzer/replay_pid1154129.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Attachments
Issue Links
- backported by
-
JDK-8298861 PhaseIdealLoop::only_has_infinite_loops must detect all loops that never lead to termination
-
- Resolved
-
-
JDK-8300219 PhaseIdealLoop::only_has_infinite_loops must detect all loops that never lead to termination
-
- Resolved
-
- relates to
-
JDK-8294217 Assertion failure: parsing found no loops but there are some
-
- Resolved
-
-
JDK-8280126 C2: detect and remove dead irreducible loops
-
- Resolved
-
-
JDK-8296318 use-def assert: special case undetected loops nested in infinite loops
-
- Resolved
-
-
JDK-8299214 Bytecode Fuzzer for irreducible/infinite loops and more
-
- Open
-
- links to
-
Commit openjdk/jdk17u-dev/1d6db443
-
Commit openjdk/jdk/d562d3fc
-
Review openjdk/jdk17u-dev/1058
-
Review openjdk/jdk/11473