-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: 26
-
Component/s: hotspot
The attached Java Fuzzer test fails with the following assertion:
To reproduce (quite intermittent with Reduced.java):
$ java -XX:CompileCommand=compileonly,*Test*::mainTest* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:+StressCCP -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=100 Test.java
$ java -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 Reduced.java
Output:
Missed Identity optimization:
Old node:
dist dump
---------------------------------------------
1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
1 298 LShiftI === _ 657 21 [[ 322 ]] !jvms: Reduced::test @ bci:53 (line 17)
0 322 RShiftI === _ 298 21 [[ 324 ]] !jvms: Reduced::test @ bci:73 (line 19)
New node:
dist dump
---------------------------------------------
1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
1 658 LShiftI === _ 659 21 [[ 657 ]] !orig=298 !jvms: Reduced::test @ bci:53 (line 17)
0 657 RShiftI === _ 658 21 [[ 656 298 ]] !orig=322 !jvms: Reduced::test @ bci:73 (line 19)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35568/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/0749998a-5034-4b32-81b3-be27d8a2b7c1/runs/d604f20f-e69e-4651-82f3-79f998a668d4/workspace/open/src/hotspot/share/opto/phaseX.cpp:1107), pid=1288788, tid=1288807
# assert(!failure) failed: Missed optimization opportunity/broken graph in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (27.0+4) (fastdebug build 27-ea+4-314)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+4-314, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a
.................
Command Line: -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher Reduced.java
.................
C2:2272 101 b Reduced::test (119 bytes)
Stack: [0x00007f7787cfe000,0x00007f7787dfe000], sp=0x00007f7787df8ea0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a (phaseX.cpp:1107)
V [libjvm.so+0x18a0d48] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
V [libjvm.so+0xbb1e02] Compile::Optimize()+0xa72 (compile.cpp:2509)
V [libjvm.so+0xbb51f3] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2023 (compile.cpp:862)
V [libjvm.so+0x9cc468] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x498 (c2compiler.cpp:147)
V [libjvm.so+0xbc47b4] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x854 (compileBroker.cpp:2353)
V [libjvm.so+0xbc5f40] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
V [libjvm.so+0x112659b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bb28f6] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x1808518] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
To reproduce (quite intermittent with Reduced.java):
$ java -XX:CompileCommand=compileonly,*Test*::mainTest* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:+StressCCP -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=100 Test.java
$ java -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 Reduced.java
Output:
Missed Identity optimization:
Old node:
dist dump
---------------------------------------------
1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
1 298 LShiftI === _ 657 21 [[ 322 ]] !jvms: Reduced::test @ bci:53 (line 17)
0 322 RShiftI === _ 298 21 [[ 324 ]] !jvms: Reduced::test @ bci:73 (line 19)
New node:
dist dump
---------------------------------------------
1 21 ConI === 0 [[ 125 109 65 76 87 98 322 572 658 620 573 298 657 ]] #int:5
1 658 LShiftI === _ 659 21 [[ 657 ]] !orig=298 !jvms: Reduced::test @ bci:53 (line 17)
0 657 RShiftI === _ 658 21 [[ 656 298 ]] !orig=322 !jvms: Reduced::test @ bci:73 (line 19)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/opt/mach5/mesos/work_dir/slaves/da1065b5-7b94-4f0d-85e9-a3a252b9a32e-S35568/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/0749998a-5034-4b32-81b3-be27d8a2b7c1/runs/d604f20f-e69e-4651-82f3-79f998a668d4/workspace/open/src/hotspot/share/opto/phaseX.cpp:1107), pid=1288788, tid=1288807
# assert(!failure) failed: Missed optimization opportunity/broken graph in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (27.0+4) (fastdebug build 27-ea+4-314)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 27-ea+4-314, compiled mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a
.................
Command Line: -XX:CompileCommand=compileonly,*Reduced*::test* -XX:-TieredCompilation -Xcomp -XX:+StressIGVN -XX:VerifyIterativeGVN=1110 -XX:RepeatCompilation=1000 --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher Reduced.java
.................
C2:2272 101 b Reduced::test (119 bytes)
Stack: [0x00007f7787cfe000,0x00007f7787dfe000], sp=0x00007f7787df8ea0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x18a044a] PhaseIterGVN::verify_optimize()+0xd1a (phaseX.cpp:1107)
V [libjvm.so+0x18a0d48] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
V [libjvm.so+0xbb1e02] Compile::Optimize()+0xa72 (compile.cpp:2509)
V [libjvm.so+0xbb51f3] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2023 (compile.cpp:862)
V [libjvm.so+0x9cc468] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x498 (c2compiler.cpp:147)
V [libjvm.so+0xbc47b4] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x854 (compileBroker.cpp:2353)
V [libjvm.so+0xbc5f40] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1989)
V [libjvm.so+0x112659b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1bb28f6] Thread::call_run()+0xb6 (thread.cpp:242)
V [libjvm.so+0x1808518] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)