JDK-8234350 : assert(mode == ControlAroundStripMined && (use == sfpt || !use->is_reachable_from_root())) failed: missed a node
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10,11,12,13,14
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2019-11-18
  • Updated: 2022-06-27
  • Resolved: 2019-12-10
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
11.0.7-oracleFixed 13.0.3Fixed 14 b27Fixed
Related Reports
Relates :  
Description
Generated test crashed with
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (open/src/hotspot/share/opto/loopopts.cpp:1730), pid=7834, tid=7845
#  assert(mode == ControlAroundStripMined && (use == sfpt || !use->is_reachable_from_root())) failed: missed a node
#
# JRE version: Java(TM) SE Runtime Environment (14.0+23) (fastdebug build 14-ea+23-1048)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 14-ea+23-1048, compiled mode, sharing, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x1183add]  PhaseIdealLoop::clone_loop_handle_data_uses(Node*, Node_List&, IdealLoopTree*, IdealLoopTree*, Node_List*&, Node_List*&, Node_List*&, Node_List&, unsigned int, PhaseIdealLoop::CloneLoopMode)+0x63d
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /tmp/fuzzer.tmp.FJoZrrxB6P/core.7834)
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------

Command Line: -Xmx1G -Xcomp -Xbatch -XX:-TieredCompilation -XX:CompileOnly=Test Test

Host:  Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz, 4 cores, 14G, Oracle Linux Server release 7.5
Time: Sun Nov 17 18:03:07 2019 UTC elapsed time: 0 seconds (0d 0h 0m 0s)

---------------  T H R E A D  ---------------

Current thread (0x00007fcd6c252000):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=7845, stack(0x00007fcd51279000,0x00007fcd5137a000)]


Current CompileTask:
C2:    215    4    b        Test::vMeth (213 bytes)

Stack: [0x00007fcd51279000,0x00007fcd5137a000],  sp=0x00007fcd51373d50,  free space=1003k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1183add]  PhaseIdealLoop::clone_loop_handle_data_uses(Node*, Node_List&, IdealLoopTree*, IdealLoopTree*, Node_List*&, Node_List*&, Node_List*&, Node_List&, unsigned int, PhaseIdealLoop::CloneLoopMode)+0x63d
V  [libjvm.so+0x118627d]  PhaseIdealLoop::clone_loop(IdealLoopTree*, Node_List&, int, PhaseIdealLoop::CloneLoopMode, Node*)+0xefd
V  [libjvm.so+0x1158c5e]  PhaseIdealLoop::create_slow_version_of_loop(IdealLoopTree*, Node_List&, int, PhaseIdealLoop::CloneLoopMode)+0xcae
V  [libjvm.so+0x115b70c]  PhaseIdealLoop::do_unswitching(IdealLoopTree*, Node_List&)+0xfc
V  [libjvm.so+0x1152d4a]  IdealLoopTree::iteration_split_impl(PhaseIdealLoop*, Node_List&)+0x3ca
V  [libjvm.so+0x11542b1]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x111
V  [libjvm.so+0x11541c6]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x26
V  [libjvm.so+0x11541c6]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x26
V  [libjvm.so+0x1178cd7]  PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0xc97
V  [libjvm.so+0x99bb4a]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x2ea
V  [libjvm.so+0x998603]  Compile::Optimize()+0x353
V  [libjvm.so+0x99a354]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x10a4
V  [libjvm.so+0x8123f0]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x110
V  [libjvm.so+0x9a6dcc]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x2cc
V  [libjvm.so+0x9a7d78]  CompileBroker::compiler_thread_loop()+0x468
V  [libjvm.so+0x16625d6]  JavaThread::thread_main_inner()+0x226
V  [libjvm.so+0x1667cb6]  Thread::call_run()+0xf6
V  [libjvm.so+0x139a33e]  thread_native_entry(Thread*)+0x10e
Comments
Fix Request (13u) This patch fixes the over-reaching assert, and keeps codebases in sync with 14u. The patch applies cleanly to 13u. New regression test fails without the patch, passes with it. Risk is low, as it affects the asserts.
25-03-2020

Fix Request (11u) This patch fixes the over-reaching assert, and keeps codebases in sync (I see 11.0.7-oracle). The patch applies cleanly to 11u, passes tier1, tier2 tests. New regression test fails without the patch, passes with it. Risk is low, as it affects the asserts.
13-01-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/44aa31d0dea3 User: roland Date: 2019-12-10 15:25:53 +0000
10-12-2019

Similar to recent JDK-8230061. initial ILW = C2 crash; always reproducible with fuzzer test, with -Xcomp -XX:-TieredCompilation, related to C2 loop strip mining; '-XX:LoopStripMiningIter=0' = HML = P2 Reproducible from JDK 10 b36 onwards, after JDK-8186027. Hi [~roland], request your help to check this issue. Thanks.
19-11-2019