-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P3
-
Affects Version/s: 16
-
Component/s: hotspot
Every so often in CTW testing we reach through the path that calls GrowableArray::remove_till(0). From the method specification, it is supposed to work as no-op, since "till" is exclusive. Instead, the method asserts later:
# Internal Error (/home/shade/trunks/jdk/src/hotspot/share/utilities/growableArray.hpp:498), pid=2972347, tid=2973775
# assert(start < end && end <= this->_len) failed: erase called with invalid range (0, 0) for length 0
Stack: [0x00007fd660bea000,0x00007fd660cea000], sp=0x00007fd660ce4fc0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xc00a41] Compile::inline_incrementally_one()+0x801 (growableArray.hpp:498)
V [libjvm.so+0xc01650] Compile::inline_incrementally(PhaseIterGVN&)+0x2f0 (compile.cpp:2212)
V [libjvm.so+0xc04581] Compile::Optimize()+0x7d1 (compile.cpp:2357)
V [libjvm.so+0xc07c03] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2003 (compile.cpp:862)
V [libjvm.so+0xa2e891] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x471 (c2compiler.cpp:147)
V [libjvm.so+0xc1791a] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xbea (compileBroker.cpp:2345)
V [libjvm.so+0xc18940] CompileBroker::compiler_thread_loop()+0x520 (compileBroker.cpp:1989)
V [libjvm.so+0x1177fcf] JavaThread::thread_main_inner()+0x12f (javaThread.cpp:776)
V [libjvm.so+0x1db23ba] Thread::call_run()+0xba (thread.cpp:242)
V [libjvm.so+0x1844a08] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
C [libc.so.6+0x9caa4]
Looks like GrowableArray::remove_range is innocious to call with (0,0), as we would never actually modify the list. Therefore it looks like the lucky assert-only problem at this point.
# Internal Error (/home/shade/trunks/jdk/src/hotspot/share/utilities/growableArray.hpp:498), pid=2972347, tid=2973775
# assert(start < end && end <= this->_len) failed: erase called with invalid range (0, 0) for length 0
Stack: [0x00007fd660bea000,0x00007fd660cea000], sp=0x00007fd660ce4fc0, free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xc00a41] Compile::inline_incrementally_one()+0x801 (growableArray.hpp:498)
V [libjvm.so+0xc01650] Compile::inline_incrementally(PhaseIterGVN&)+0x2f0 (compile.cpp:2212)
V [libjvm.so+0xc04581] Compile::Optimize()+0x7d1 (compile.cpp:2357)
V [libjvm.so+0xc07c03] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x2003 (compile.cpp:862)
V [libjvm.so+0xa2e891] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x471 (c2compiler.cpp:147)
V [libjvm.so+0xc1791a] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xbea (compileBroker.cpp:2345)
V [libjvm.so+0xc18940] CompileBroker::compiler_thread_loop()+0x520 (compileBroker.cpp:1989)
V [libjvm.so+0x1177fcf] JavaThread::thread_main_inner()+0x12f (javaThread.cpp:776)
V [libjvm.so+0x1db23ba] Thread::call_run()+0xba (thread.cpp:242)
V [libjvm.so+0x1844a08] thread_native_entry(Thread*)+0x118 (os_linux.cpp:860)
C [libc.so.6+0x9caa4]
Looks like GrowableArray::remove_range is innocious to call with (0,0), as we would never actually modify the list. Therefore it looks like the lucky assert-only problem at this point.
- blocks
-
JDK-8360557 CTW: Inline cold methods to reach more code
-
- Open
-
- caused by
-
JDK-8257211 C2: Enable call devirtualization during post-parse phase
-
- Resolved
-
- links to
-
Review(master)
openjdk/jdk/29171