-
Bug
-
Resolution: Unresolved
-
P4
-
11.0.15, 17.0.3, 19, 20
ADDITIONAL SYSTEM INFORMATION :
OS: Ubuntu18.04
jdk11
$ java -version
openjdk version "11.0.15-internal" 2022-04-19
OpenJDK Runtime Environment (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u)
OpenJDK 64-Bit Server VM (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u, mixed mode, sharing)
jdk17
$ java -version
openjdk version "17.0.3-internal" 2022-04-19
OpenJDK Runtime Environment (fastdebug build 17.0.3-internal+0-adhoc.user.jdk17u)
OpenJDK 64-Bit Server VM (fastdebug build 17.0.3-internal+0-adhoc.user.jdk17u, mixed mode, sharing
A DESCRIPTION OF THE PROBLEM :
Under JDK11 and JDK17, JVM is crashed when the option LoopUnrollLimit is turned on to run the test file.
Reproduce:
$ java -Xcomp -XX:LoopUnrollLimit=10000 Test
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/phaseX.cpp:1193
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/jiahx/jdk_source/jdk11u/src/hotspot/share/opto/phaseX.cpp:1193), pid=96794, tid=96809
# assert(false) failed: infinite loop in PhaseIterGVN::optimize
#
# JRE version: OpenJDK Runtime Environment (11.0.15) (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 11.0.15-internal+0-adhoc.user.jdk11u, compiled mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/user/hs_err_pid96794.log
#
# Compiler replay data is saved as:
# /home/user/replay_pid96794.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
hs_error:
Current CompileTask:
C2: 8625 1337 b 4 Test::lMeth (246 bytes)
Stack: [0x00007f2a25046000,0x00007f2a25147000], sp=0x00007f2a25140580, free space=1001k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x18de9ca] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x1ca
V [libjvm.so+0x18dfabf] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x2f
V [libjvm.so+0xb4cb80] report_vm_error(char const*, int, char const*, char const*, ...)+0x100
V [libjvm.so+0x15be7aa] PhaseIterGVN::dump_infinite_loop_info(Node*)+0x6a
V [libjvm.so+0x15bfb99] PhaseIterGVN::optimize()+0x399
V [libjvm.so+0x12d4868] PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0xdd8
V [libjvm.so+0xa6c0ba] Compile::optimize_loops(int&, PhaseIterGVN&, LoopOptsMode) [clone .part.440]+0x2da
V [libjvm.so+0xa6f9d0] Compile::Optimize()+0xc50
V [libjvm.so+0xa70c7f] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x107f
V [libjvm.so+0x87377b] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0xfb
V [libjvm.so+0xa7e2d0] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x390
V [libjvm.so+0xa7f298] CompileBroker::compiler_thread_loop()+0x418
V [libjvm.so+0x181006b] JavaThread::thread_main_inner()+0x20b
V [libjvm.so+0x180bea5] Thread::call_run()+0x75
V [libjvm.so+0x151cb06] thread_native_entry(Thread*)+0x106
---------- BEGIN SOURCE ----------
The test files is in the link below:
https://drive.google.com/file/d/10hNFBzdiRfWGv0a-pCmycaJfbt6_yi6s/view?usp=sharing
---------- END SOURCE ----------
FREQUENCY : always
OS: Ubuntu18.04
jdk11
$ java -version
openjdk version "11.0.15-internal" 2022-04-19
OpenJDK Runtime Environment (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u)
OpenJDK 64-Bit Server VM (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u, mixed mode, sharing)
jdk17
$ java -version
openjdk version "17.0.3-internal" 2022-04-19
OpenJDK Runtime Environment (fastdebug build 17.0.3-internal+0-adhoc.user.jdk17u)
OpenJDK 64-Bit Server VM (fastdebug build 17.0.3-internal+0-adhoc.user.jdk17u, mixed mode, sharing
A DESCRIPTION OF THE PROBLEM :
Under JDK11 and JDK17, JVM is crashed when the option LoopUnrollLimit is turned on to run the test file.
Reproduce:
$ java -Xcomp -XX:LoopUnrollLimit=10000 Test
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/phaseX.cpp:1193
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/jiahx/jdk_source/jdk11u/src/hotspot/share/opto/phaseX.cpp:1193), pid=96794, tid=96809
# assert(false) failed: infinite loop in PhaseIterGVN::optimize
#
# JRE version: OpenJDK Runtime Environment (11.0.15) (fastdebug build 11.0.15-internal+0-adhoc.user.jdk11u)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 11.0.15-internal+0-adhoc.user.jdk11u, compiled mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/user/hs_err_pid96794.log
#
# Compiler replay data is saved as:
# /home/user/replay_pid96794.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
hs_error:
Current CompileTask:
C2: 8625 1337 b 4 Test::lMeth (246 bytes)
Stack: [0x00007f2a25046000,0x00007f2a25147000], sp=0x00007f2a25140580, free space=1001k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x18de9ca] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x1ca
V [libjvm.so+0x18dfabf] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x2f
V [libjvm.so+0xb4cb80] report_vm_error(char const*, int, char const*, char const*, ...)+0x100
V [libjvm.so+0x15be7aa] PhaseIterGVN::dump_infinite_loop_info(Node*)+0x6a
V [libjvm.so+0x15bfb99] PhaseIterGVN::optimize()+0x399
V [libjvm.so+0x12d4868] PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0xdd8
V [libjvm.so+0xa6c0ba] Compile::optimize_loops(int&, PhaseIterGVN&, LoopOptsMode) [clone .part.440]+0x2da
V [libjvm.so+0xa6f9d0] Compile::Optimize()+0xc50
V [libjvm.so+0xa70c7f] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x107f
V [libjvm.so+0x87377b] C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0xfb
V [libjvm.so+0xa7e2d0] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x390
V [libjvm.so+0xa7f298] CompileBroker::compiler_thread_loop()+0x418
V [libjvm.so+0x181006b] JavaThread::thread_main_inner()+0x20b
V [libjvm.so+0x180bea5] Thread::call_run()+0x75
V [libjvm.so+0x151cb06] thread_native_entry(Thread*)+0x106
---------- BEGIN SOURCE ----------
The test files is in the link below:
https://drive.google.com/file/d/10hNFBzdiRfWGv0a-pCmycaJfbt6_yi6s/view?usp=sharing
---------- END SOURCE ----------
FREQUENCY : always
- relates to
-
JDK-8287217 C2: PhaseCCP: remove not visited nodes, prevent type inconsistency
-
- Resolved
-