JDK-8236759 : ShouldNotReachHere in PhaseIdealLoop::verify_strip_mined_scheduling
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10.0.2,11,12,13,14,15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-01-08
  • Updated: 2020-06-05
  • Resolved: 2020-02-14
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 JDK 13 JDK 14 JDK 15
11.0.8-oracleFixed 13.0.4Fixed 14.0.2Fixed 15 b11Fixed
Related Reports
Relates :  
Relates :  
Description
#  Internal Error (/oracle/jdk_jdk/open/src/hotspot/share/opto/loopnode.cpp:4262), pid=32646, tid=32658
#  Error: ShouldNotReachHere()
#
# JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.tobias.open)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.tobias.open, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x104975c]  PhaseIdealLoop::verify_strip_mined_scheduling(Node*, Node*)+0x37c

Current CompileTask:
C2:    418  380       4       Main::getPermutations (84 bytes)

Stack: [0x00007fad2e5a5000,0x00007fad2e6a6000],  sp=0x00007fad2e6a0270,  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+0x104975c]  PhaseIdealLoop::verify_strip_mined_scheduling(Node*, Node*)+0x37c
V  [libjvm.so+0x104cc02]  PhaseIdealLoop::build_loop_late_post_work(Node*, bool)+0x362
V  [libjvm.so+0x104d096]  PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)+0xb6
V  [libjvm.so+0x1051c75]  PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x765
V  [libjvm.so+0x85d0c1]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x2c1
V  [libjvm.so+0x859949]  Compile::Optimize()+0x3a9
V  [libjvm.so+0x85b7a5]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x1215
V  [libjvm.so+0x6c9b60]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x110
V  [libjvm.so+0x867c6b]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x2db
V  [libjvm.so+0x868c48]  CompileBroker::compiler_thread_loop()+0x4d8
V  [libjvm.so+0x1564df6]  JavaThread::thread_main_inner()+0x206
V  [libjvm.so+0x1569c36]  Thread::call_run()+0xf6
V  [libjvm.so+0x1284cce]  thread_native_entry(Thread*)+0x10e
Comments
Fix request (13u): The original change applies cleanly, passes tier1,tier2,tier3 tests.
05-06-2020

Fix request (11u) -- will label after testing completed. I would like to downport this for parity with 11.0.8-oracle. Applies clean.
17-03-2020

Fix Request (JDK 14.0.2) This patch fixes loop strip mining verification in C2 and has already been backported to JDK 11u. The fix is low risk and applies cleanly to JDK 14.0.2. In addition to CI testing through all tiers in JDK 15 and 11u, additional testing will be executed in JDK 14.0.2 before pushing.
06-03-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/8d03748fae04 User: roland Date: 2020-02-14 14:09:28 +0000
14-02-2020

Roland, please have a look.
08-01-2020

Regression test can be found in JDK-8236755.
08-01-2020

ILW = Assert during loop strip mining verification, reproducible with simple test but does not affect product builds, disable loop strip mining = MMM = P3
08-01-2020