-
Bug
-
Resolution: Unresolved
-
P4
-
26
-
generic
-
linux
Intermittent test crash via assertion failure. Seen in Valhalla, but appears to be in mainline.
Missed Identity optimization:
Old node:
dist dump
---------------------------------------------
1 384 ConvL2D === _ 365 [[ 376 369 364 ]] #double !orig=[368],[357],[348] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:26 (line 52)
0 369 ConvD2L === _ 384 [[ 358 ]] #long !orig=[357],[348]
New node:
dist dump
---------------------------------------------
1 364 Phi === 338 298 384 [[ 365 ]] #double !orig=[355],[337],204,[198]
0 365 ConvD2L === _ 364 [[ 384 333 ]] #long !orig=[355],[337],204,[198] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:19 (line 51)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/opto/phaseX.cpp:1105), pid=3159999, tid=3160018
# assert(!failure) failed: Missed optimization opportunity in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (26.0+1) (fastdebug build 26-valhalla+1-80)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-valhalla+1-80, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19
#
# Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to core.3159999)
#
# 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: -Dtest.vm.opts=-XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.tool.vm.opts=-J-XX:MaxRAMPercentage=4.16667 -J-Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -J-Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.compiler.opts= -Dtest.java.opts=-XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Dtest.jdk=jdk-26/fastdebug -Dcompile.jdk=jdk-26/fastdebug -Dtest.timeout.factor=1.0 -Dtest.nativepath=hotspot/jtreg/native -Dtest.root=test/hotspot/jtreg -Dtest.name=compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.verbose=Verbose[p=BRIEF,f=FULL,e=FULL,t=true,m=false] -Dtest.file=test/hotspot/jtreg/compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.src=test/hotspot/jtreg/compiler/c2 -Dtest.src.path=test/hotspot/jtreg/compiler/c2 -Dtest.classes=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path.prefix=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d:test/hotspot/jtreg/compiler/c2 -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Djava.library.path=hotspot/jtreg/native -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=compileonly,compiler.c2.TestEliminateRedundantConversionSequences::test* -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 com.sun.javatest.regtest.agent.MainWrapper test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/compiler/c2/TestEliminateRedundantConversionSequences.d/main.0.jta
Host: , AMD EPYC 7J13 64-Core Processor, 12 cores, 23G, Oracle Linux Server release 9.5
Time: Fri Oct 10 15:23:21 2025 UTC elapsed time: 0.226736 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x00007f805c1a9970): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=3160018, stack(0x00007f8042c12000,0x00007f8042d12000) (1024K)]
Current CompileTask:
C2:226 14 b compiler.c2.TestEliminateRedundantConversionSequences::testD2L (35 bytes)
Stack: [0x00007f8042c12000,0x00007f8042d12000], sp=0x00007f8042d0ccb0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19 (phaseX.cpp:1105)
V [libjvm.so+0x1900fa8] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
V [libjvm.so+0xbc8c82] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x672 (loopnode.hpp:1292)
V [libjvm.so+0xbc299b] Compile::Optimize()+0x121b (compile.cpp:2960)
V [libjvm.so+0xbc570f] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1fcf (compile.cpp:873)
V [libjvm.so+0x9cf333] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x483 (c2compiler.cpp:149)
V [libjvm.so+0xbd4cd8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb48 (compileBroker.cpp:2342)
V [libjvm.so+0xbd5e60] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1986)
V [libjvm.so+0x116444b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1c28f56] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x1860218] thread_native_entry(Thread*)+0x128 (os_linux.cpp:892)
Missed Identity optimization:
Old node:
dist dump
---------------------------------------------
1 384 ConvL2D === _ 365 [[ 376 369 364 ]] #double !orig=[368],[357],[348] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:26 (line 52)
0 369 ConvD2L === _ 384 [[ 358 ]] #long !orig=[357],[348]
New node:
dist dump
---------------------------------------------
1 364 Phi === 338 298 384 [[ 365 ]] #double !orig=[355],[337],204,[198]
0 365 ConvD2L === _ 364 [[ 384 333 ]] #long !orig=[355],[337],204,[198] !jvms: TestEliminateRedundantConversionSequences::testD2L @ bci:19 (line 51)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (src/hotspot/share/opto/phaseX.cpp:1105), pid=3159999, tid=3160018
# assert(!failure) failed: Missed optimization opportunity in PhaseIterGVN
#
# JRE version: Java(TM) SE Runtime Environment (26.0+1) (fastdebug build 26-valhalla+1-80)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-valhalla+1-80, mixed mode, sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19
#
# Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to core.3159999)
#
# 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: -Dtest.vm.opts=-XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.tool.vm.opts=-J-XX:MaxRAMPercentage=4.16667 -J-Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -J-Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -Dtest.compiler.opts= -Dtest.java.opts=-XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Dtest.jdk=jdk-26/fastdebug -Dcompile.jdk=jdk-26/fastdebug -Dtest.timeout.factor=1.0 -Dtest.nativepath=hotspot/jtreg/native -Dtest.root=test/hotspot/jtreg -Dtest.name=compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.verbose=Verbose[p=BRIEF,f=FULL,e=FULL,t=true,m=false] -Dtest.file=test/hotspot/jtreg/compiler/c2/TestEliminateRedundantConversionSequences.java -Dtest.src=test/hotspot/jtreg/compiler/c2 -Dtest.src.path=test/hotspot/jtreg/compiler/c2 -Dtest.classes=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d -Dtest.class.path.prefix=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/classes/4/compiler/c2/TestEliminateRedundantConversionSequences.d:test/hotspot/jtreg/compiler/c2 -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/tmp -XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling -Djava.library.path=hotspot/jtreg/native -XX:+IgnoreUnrecognizedVMOptions -XX:CompileCommand=compileonly,compiler.c2.TestEliminateRedundantConversionSequences::test* -XX:-TieredCompilation -Xbatch -XX:VerifyIterativeGVN=1110 com.sun.javatest.regtest.agent.MainWrapper test-support/jtreg_open_test_hotspot_jtreg_tier1_compiler_1/compiler/c2/TestEliminateRedundantConversionSequences.d/main.0.jta
Host: , AMD EPYC 7J13 64-Core Processor, 12 cores, 23G, Oracle Linux Server release 9.5
Time: Fri Oct 10 15:23:21 2025 UTC elapsed time: 0.226736 seconds (0d 0h 0m 0s)
--------------- T H R E A D ---------------
Current thread (0x00007f805c1a9970): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=3160018, stack(0x00007f8042c12000,0x00007f8042d12000) (1024K)]
Current CompileTask:
C2:226 14 b compiler.c2.TestEliminateRedundantConversionSequences::testD2L (35 bytes)
Stack: [0x00007f8042c12000,0x00007f8042d12000], sp=0x00007f8042d0ccb0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1900739] PhaseIterGVN::verify_optimize()+0xd19 (phaseX.cpp:1105)
V [libjvm.so+0x1900fa8] PhaseIterGVN::optimize()+0x418 (phaseX.cpp:1069)
V [libjvm.so+0xbc8c82] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x672 (loopnode.hpp:1292)
V [libjvm.so+0xbc299b] Compile::Optimize()+0x121b (compile.cpp:2960)
V [libjvm.so+0xbc570f] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1fcf (compile.cpp:873)
V [libjvm.so+0x9cf333] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x483 (c2compiler.cpp:149)
V [libjvm.so+0xbd4cd8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb48 (compileBroker.cpp:2342)
V [libjvm.so+0xbd5e60] CompileBroker::compiler_thread_loop()+0x530 (compileBroker.cpp:1986)
V [libjvm.so+0x116444b] JavaThread::thread_main_inner()+0x13b (javaThread.cpp:776)
V [libjvm.so+0x1c28f56] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x1860218] thread_native_entry(Thread*)+0x128 (os_linux.cpp:892)
- relates to
-
JDK-8359603 Missed optimization in PhaseIterGVN for redundant ConvX2Y->ConvY2X->ConvX2Y sequences due to missing notification in PhaseIterGVN::add_users_of_use_to_worklist
-
- Resolved
-