JDK-8197563 : assert(is_Loop()) crash in PhaseIdealLoop::try_move_store_before_loop()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10,11
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2018-02-12
  • Updated: 2019-09-13
  • Resolved: 2018-02-13
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 11
11 b03Fixed
Related Reports
Relates :  
Description
#  Internal Error (/home/wish/Projects/JVMTesting/openjdk/hs/src/hotspot/share/opto/node.hpp:821), pid=5741, tid=5769
#  assert(is_Loop()) failed: invalid node class

Current CompileTask:
C2:   3321  365    b        C0::_main (126 bytes)

Stack: [0x00007f7bdb023000,0x00007f7bdb124000],  sp=0x00007f7bdb11e1a0,  free space=1004k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x16c4d9e]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x4ce
V  [libjvm.so+0x16c590f]  VMError::report_and_die(Thread*, char const*, int, char const*, char const*, __va_list_tag*)+0x2f
V  [libjvm.so+0xab51f2]  report_vm_error(char const*, int, char const*, char const*, ...)+0x112
V  [libjvm.so+0x112f07e]  Node::as_Loop() const [clone .part.74]+0x2e
V  [libjvm.so+0x1133c22]  PhaseIdealLoop::try_move_store_before_loop(Node*, Node*)+0x652
V  [libjvm.so+0x11340de]  PhaseIdealLoop::split_if_with_blocks_pre(Node*)+0xbe
V  [libjvm.so+0x11359f3]  PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)+0x133
V  [libjvm.so+0x112dff2]  PhaseIdealLoop::build_and_optimize(bool, bool)+0x10c2
V  [libjvm.so+0xa142c1]  Compile::Optimize()+0x321
V  [libjvm.so+0xa16052]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x1172
V  [libjvm.so+0x81f03b]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x2db
V  [libjvm.so+0xa22f5e]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x55e
V  [libjvm.so+0xa244c8]  CompileBroker::compiler_thread_loop()+0x408
V  [libjvm.so+0x1610ce2]  JavaThread::thread_main_inner()+0x1e2
V  [libjvm.so+0x1349462]  thread_native_entry(Thread*)+0x112

http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2018-February/028249.html
Comments
We have to backport fix into jdk10 update when it is available.
12-02-2018

Agree to defer since there is workaround with flags.
12-02-2018

We are at the release candidate phase now. Targeting this to JDK 11. http://openjdk.java.net/projects/jdk/10/rc
12-02-2018

ILW = Crash during compilation (regression in JDK 10, affects product), reproduces with regression test, disable loop strip mining (-XX:-UseCountedLoopSafepoints or -XX:LoopStripMiningIter=0) = HHM = P2
12-02-2018