-
Bug
-
Resolution: Fixed
-
P3
-
17
After JDK-8251462, we are seeing the following assert in Valhalla testing with TieredStopAtLevel=3:
# Internal Error (/oracle/valhalla/open/src/hotspot/share/c1/c1_LIRGenerator.cpp:967), pid=1143369, tid=1143383
# assert(data != __null) failed: must have profiling data
Current CompileTask:
C1: 533 169 b 3 compiler.valhalla.inlinetypes.TestArrays::<clinit> (134 bytes)
Stack: [0x00007f187003c000,0x00007f187013d000], sp=0x00007f187013ace0, free space=1019k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x7b6a64] LIRGenerator::profile_branch(If*, Instruction::Condition)+0x424
V [libjvm.so+0x7dcfc1] LIRGenerator::do_If(If*)+0x1e1
V [libjvm.so+0x7b06c4] LIRGenerator::do_root(Instruction*)+0xa4
V [libjvm.so+0x7b381e] non-virtual thunk to LIRGenerator::block_do(BlockBegin*)+0x5e
V [libjvm.so+0x773d74] BlockList::iterate_forward(BlockClosure*)+0x94
V [libjvm.so+0x7286b6] Compilation::emit_lir()+0x5d6
V [libjvm.so+0x72b65b] Compilation::compile_java_method()+0x43b
V [libjvm.so+0x72c1f0] Compilation::compile_method()+0x1d0
V [libjvm.so+0x72cc66] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*)+0x3c6
V [libjvm.so+0x72e113] Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1a3
V [libjvm.so+0xa68ff1] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xea1
V [libjvm.so+0xa69c78] CompileBroker::compiler_thread_loop()+0x5a8
V [libjvm.so+0x192eea6] JavaThread::thread_main_inner()+0x256
V [libjvm.so+0x1935810] Thread::call_run()+0x100
V [libjvm.so+0x15f74e6] thread_native_entry(Thread*)+0x116
A quick investigation showed that CompilerConfig::is_c1_simple_only() incorrectly returns true.
It's concerning that none of our mainline testing caught this.
# Internal Error (/oracle/valhalla/open/src/hotspot/share/c1/c1_LIRGenerator.cpp:967), pid=1143369, tid=1143383
# assert(data != __null) failed: must have profiling data
Current CompileTask:
C1: 533 169 b 3 compiler.valhalla.inlinetypes.TestArrays::<clinit> (134 bytes)
Stack: [0x00007f187003c000,0x00007f187013d000], sp=0x00007f187013ace0, free space=1019k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x7b6a64] LIRGenerator::profile_branch(If*, Instruction::Condition)+0x424
V [libjvm.so+0x7dcfc1] LIRGenerator::do_If(If*)+0x1e1
V [libjvm.so+0x7b06c4] LIRGenerator::do_root(Instruction*)+0xa4
V [libjvm.so+0x7b381e] non-virtual thunk to LIRGenerator::block_do(BlockBegin*)+0x5e
V [libjvm.so+0x773d74] BlockList::iterate_forward(BlockClosure*)+0x94
V [libjvm.so+0x7286b6] Compilation::emit_lir()+0x5d6
V [libjvm.so+0x72b65b] Compilation::compile_java_method()+0x43b
V [libjvm.so+0x72c1f0] Compilation::compile_method()+0x1d0
V [libjvm.so+0x72cc66] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*)+0x3c6
V [libjvm.so+0x72e113] Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1a3
V [libjvm.so+0xa68ff1] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xea1
V [libjvm.so+0xa69c78] CompileBroker::compiler_thread_loop()+0x5a8
V [libjvm.so+0x192eea6] JavaThread::thread_main_inner()+0x256
V [libjvm.so+0x1935810] Thread::call_run()+0x100
V [libjvm.so+0x15f74e6] thread_native_entry(Thread*)+0x116
A quick investigation showed that CompilerConfig::is_c1_simple_only() incorrectly returns true.
It's concerning that none of our mainline testing caught this.
- relates to
-
JDK-8262097 Improve CompilerConfig ergonomics to fix a VM crash after JDK-8261229
-
- Resolved
-
-
JDK-8261156 [lworld] Re-enable C1 testing after mainline issues are fixed
-
- Resolved
-
-
JDK-8251462 Simplify compilation policy
-
- Resolved
-