JDK-8053915 : bigapps assert failure in C2: modified node is not on IGVN._worklist
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-07-29
  • Updated: 2017-08-14
  • Resolved: 2014-08-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b28Fixed
Related Reports
Relates :  
Relates :  
Description
 1438	CountedLoopEnd	===  1248  2028  [[ 1674  1332 ]] [lt] P=0.900000, C=-1.000000 !orig=[1331] !jvms: URI::isWellFormedAddress @ bci:131

#  Internal Error (/opt/jprt/T/P1/220758.vkozlov/s/src/share/vm/opto/phaseX.cpp:943), pid=27489, tid=140204714575616
#  assert(false) failed: modified node is not on IGVN._worklist

Stack: [0x00007f83f4254000,0x00007f83f4355000],  sp=0x00007f83f434f4f0,  free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x10766dc]  VMError::report_and_die()+0x15c;;  VMError::report_and_die()+0x15c
V  [libjvm.so+0x7393ab]  report_vm_error(char const*, int, char const*, char const*)+0x7b;;  report_vm_error(char const*, int, char const*, char const*)+0x7b
V  [libjvm.so+0xe51d08]  PhaseIterGVN::init_verifyPhaseIterGVN()+0x238;;  PhaseIterGVN::init_verifyPhaseIterGVN()+0x238
V  [libjvm.so+0xe529ff]  PhaseIterGVN::optimize()+0x1f;;  PhaseIterGVN::optimize()+0x1f
V  [libjvm.so+0xc50c51]  PhaseIdealLoop::build_and_optimize(bool, bool)+0x1181;;  PhaseIdealLoop::build_and_optimize(bool, bool)+0x1181
V  [libjvm.so+0x6b2565]  Compile::Optimize()+0x685;;  Compile::Optimize()+0x685
V  [libjvm.so+0x6b4074]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x12b4;;  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x12b4
V  [libjvm.so+0x5861df]  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x28f;;  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x28f
V  [libjvm.so+0x6bfa66]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x816;;  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x816
V  [libjvm.so+0x6c0c98]  CompileBroker::compiler_thread_loop()+0x528;;  CompileBroker::compiler_thread_loop()+0x528
V  [libjvm.so+0xff6b84]  JavaThread::thread_main_inner()+0x1d4;;  JavaThread::thread_main_inner()+0x1d4
V  [libjvm.so+0xff6eb2]  JavaThread::run()+0x2a2;;  JavaThread::run()+0x2a2
V  [libjvm.so+0xdce962]  java_start(Thread*)+0xf2;;  java_start(Thread*)+0xf2
C  [libpthread.so.0+0x7851]

ILW = MLH = P4
Comments
The assert is hit because a 'CountedLoopEndNode' is modified in 'PhaseIdealLoop::do_range_check' and not added to the IGVN worklist: CountedLoopEnd === 1248 2028 [[ 1674 1332 ]] [lt] P=0.900000, C=-1.000000 !orig=[1331] !jvms: URI::isWellFormedAddress @ bci:131 See loopTransform.cpp: 2025 main_cle->set_req(1,main_bol);
30-07-2014