JDK-8253353 : Crash in C2: guarantee(n != NULL) failed: No Node
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u311,openjdk8u262,11.0.8,15,16,17
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: linux_ubuntu
  • CPU: x86_64
  • Submitted: 2020-09-15
  • Updated: 2024-12-20
  • Resolved: 2021-01-28
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 15 JDK 16 JDK 17 JDK 8 Other
11.0.11Fixed 15.0.9Resolved 16 b35Fixed 17Fixed 8u311Fixed openjdk8u332Fixed
Related Reports
Relates :  
Relates :  
Description
ADDITIONAL SYSTEM INFORMATION :
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing)
OpenJDK 64-Bit Server VM Zulu11.41+23-CA (11.0.8+10-LTS, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)

A DESCRIPTION OF THE PROBLEM :
I've shared a folder containing a full repro, hs_err_pid.log, and replay_pid.log: https://drive.google.com/drive/folders/1wYmrNNqznr32jxV9ERr3P7-MTr_9K0Ac?usp=sharing

Below is an excerpt from the hs_err_pid.log:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (loopnode.hpp:769), pid=6178, tid=6189
#  guarantee(n != NULL) failed: No Node.
#
# JRE version: OpenJDK Runtime Environment (11.0.8+10) (build 11.0.8+10-post-Ubuntu-0ubuntu118.04.1)
# Java VM: OpenJDK 64-Bit Server VM (11.0.8+10-post-Ubuntu-0ubuntu118.04.1, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /mnt/humio/erik/Projects/humio/repro-jitrex2/core.6178)
#
# If you would like to submit a bug report, please visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
#

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

Command Line: MainSmaller

Host: Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz, 4 cores, 31G, Ubuntu 18.04.4 LTS
Time: Tue Sep 15 11:03:07 2020 CEST elapsed time: 0 seconds (0d 0h 0m 0s)

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

Current thread (0x00007f5aa0229000):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=6189, stack(0x00007f5a70889000,0x00007f5a7098a000)]


Current CompileTask:
C2:    304  219       4       com.humio.jitrex.jvm.R_tmp1::nextMatchInt (5066 bytes)

Stack: [0x00007f5a70889000,0x00007f5a7098a000],  sp=0x00007f5a709854e0,  free space=1009k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xdf8919]
V  [libjvm.so+0xdf956f]
V  [libjvm.so+0x6515a6]
V  [libjvm.so+0x6f1f7e]
V  [libjvm.so+0xa7a0f6]
V  [libjvm.so+0x5f21ba]
V  [libjvm.so+0x5f33f2]
V  [libjvm.so+0x509910]
V  [libjvm.so+0x5fd6f3]
V  [libjvm.so+0x5fee98]
V  [libjvm.so+0xd8996f]
V  [libjvm.so+0xd860bf]
V  [libjvm.so+0xbd632e]

REGRESSION : Last worked in version 11

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Extract the file repro.tgz (can be downloaded from https://drive.google.com/drive/folders/1wYmrNNqznr32jxV9ERr3P7-MTr_9K0Ac?usp=sharing):

  tar zxf repro.tgz

2. Run the script run.sh:
  
  sh run.sh

3. Repeat step 2 until the JVM crashes.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The script completes without a JVM crash.
ACTUAL -
Occasionally, the JVM will crash.

---------- BEGIN SOURCE ----------
See: https://drive.google.com/drive/folders/1wYmrNNqznr32jxV9ERr3P7-MTr_9K0Ac?usp=sharing
The reproduction includes a class file that is generated by https://github.com/humio/jitrex. There's no source code corresponding to this (com/humio/jitrex/jvm/R_tmp1.class). The other sources are in the jitrex github repository.
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Unknown.

FREQUENCY : often



Comments
Fix request (15u) I would like to backport this fix to jdk15u for parity with jdk11u. The original patch applies cleanly and fixes the same issue with C2. It contains JDK-8260632 as well.
02-09-2022

A pull request was submitted for review. URL: https://git.openjdk.org/jdk15u-dev/pull/263 Date: 2022-08-28 12:42:46 +0000
02-09-2022

Changeset: a9b166d7 Author: Fei Yang <fyang@openjdk.org> Committer: Vladimir Kozlov <kvn@openjdk.org> Date: 2021-01-28 16:16:51 +0000 URL: https://git.openjdk.org/shenandoah-jdk8u/commit/a9b166d79247f2e53edd25a3291a6d37fcca6f70
01-09-2022

[8u] Rebased to mono repo: http://cr.openjdk.java.net/~zgu/JDK-8253353-8u/webrev.01/
13-12-2021

Approved. [~zgu] please remember to push to the mono repo at: http://hg.openjdk.java.net/jdk8u/monojdk8u-dev/
13-12-2021

Fix Request (8u) I would like to backport this patch to openjdk8u for parity with Oracle 8u331. The patch fixes a fatal crash initially reported for openjdk8u, so it should be backported. 8u patch has been reviewed by @roland
03-12-2021

8u code review: https://mail.openjdk.java.net/pipermail/jdk8u-dev/2021-December/014456.html
02-12-2021

As noted by Fei above, the potential to overflow _nest existed even before JDK-8240576. While the testcase included in this fix does not always trigger a crash in all impacted versions, we have confirmed that this issue is the root cause of multiple crashes reported in releases of JDK 8 (that did not include the change for JDK-8240576). This probably should be backported to all JDK 8 code lines.
17-11-2021

Fix Request (11u) This patch resolves the C2 crash. Patch is simple, but still does not apply cleanly to 11u. 11u RFR (acked by kvn): https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2021-February/004897.html. Patched JDK passes tier{1,2,3}; new test fails without the patch, passes with it. Needs JDK-8260632 to be backported to avoid Shenandoah build breakage.
08-02-2021

verified w/ test/hotspot/jtreg/compiler/loopopts/TestNestedIrreducibleLoopsMain.java
05-02-2021

Changeset: 1926765f Author: Vladimir Kozlov <kvn@openjdk.org> Date: 2021-01-28 16:16:51 +0000 URL: https://git.openjdk.java.net/jdk16/commit/1926765f
28-01-2021

Fix request approved
27-01-2021

Fix Request for JDK 16 This is a fix for a crash that happens during C2 compilation of a method with deep nesting loops. Risk: Very low - the fix is very simple and safe: increase size of field which keep nesting level. Test coverage: Passed hs-tier1-3 testing. New regression test is added. PR: https://github.com/openjdk/jdk16/pull/135
27-01-2021

[~kvn] I see your concern now. Thanks for proposing the RFE. Also please go head pushing the trivial fix if it makes sense for you hotspot experts :-)
08-01-2021

Thank you, [~fyang] again. I do plan to push your suggested fix into JDK 16. Note, the output I showed have your fix and 8240576 fix off/on. I filed separate RFE JDK-8259396 to investigate JDK-8240576 changes and what can be done to avoid these nested irreducible loops if possible. I am concern that we may have other cases like this.
07-01-2021

When we dump the IdealLoopTree before the first beautify_loops: if( !_verify_me && !_verify_only && _ltree_root->_child ) { C->print_method(PHASE_BEFORE_BEAUTIFY_LOOPS, 3); + _ltree_root->dump() if( _ltree_root->_child->beautify_loops( this ) ) { Dump is shown in file ilt_dump.txt. We have same dump here with or without the fix for JDK-8240576. In ilt_dump.txt, line 257 is not indented, this indicates that the nest value of the loop represented by line 257 is 0. However, the loop in line 257 is the child of the loop in line 256. This nest value is incorrect. The cause of the error is the overflow of the _nest variable. This problem has occurred at _ltree_root->set_nest( 0 ) . In this case, the IdealLoopTree cannot correctly express the nesting relationship of loops. The fix for JDK-8240576 only exposes this problem. The result of is_member is not trusted. bool IdealLoopTree::beautify_loops( PhaseIdealLoop *phase ) { ... while( phase->is_member( this, _head->in(fall_in_cnt) ) ) fall_in_cnt++; ... } Fix for JDK-8240576 just made the decision not to beautify this IdealLoopTree and then we see that very nested IRREDUCIBLE loops.
07-01-2021

Thank you, [~fyang] Yes, it is solved the crash. But I see that the cause is very nested IRREDUCIBLE loops which is strange. Before JDK-8240576 I see next loops from TraceLoopOpts with only 2 IRREDUCIBLE outer loops: Loop: N0/N0 has_call has_sfpt Loop: N6764/N6752 IRREDUCIBLE has_call Loop: N2317/N3581 IRREDUCIBLE sfpts={ 4042 5697 } Loop: N6785/N4367 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5860 } Loop: N6794/N4380 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5674 } Loop: N6803/N4566 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5687 } Loop: N6812/N4577 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5971 } Loop: N6821/N4722 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 6047 } After that fix there is very long nested list of IRREDUCIBLE loops: Loop: N0/N0 has_call has_sfpt Loop: N6752/N3584 IRREDUCIBLE has_call Loop: N6764/N3585 IRREDUCIBLE has_call Loop: N6776/N3586 IRREDUCIBLE has_call Loop: N6788/N3587 IRREDUCIBLE has_call Loop: N6800/N3588 IRREDUCIBLE has_call Loop: N6812/N3589 IRREDUCIBLE has_call Loop: N6824/N3590 IRREDUCIBLE has_call Loop: N6836/N3591 IRREDUCIBLE has_call .... Loop: N10592/N3581 IRREDUCIBLE Loop: N10604/N3580 sfpts={ 4042 5697 } Loop: N10614/N4367 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5860 } Loop: N10623/N4380 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5674 } Loop: N10632/N4566 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5687 } Loop: N10641/N4577 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5971 } Loop: N10650/N4722 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 6047 }
05-01-2021

We reproduced the bug using: java -XX:+UseParallelGC -XX:+UnlockDiagnosticVMOptions -Xms8G -Xmx64G -Xss2M -XX:MaxDirectMemorySize=24G -Xbatch MainSmaller Looks like the number of nesting layers for this example reaches 400+. But the type of IdeaLoopTree::nests is uint8 (the maximum value allowed is 255). The test passed with the following fix: - uint8_t _nest; // Nesting depth + uint16_t _nest; // Nesting depth
28-12-2020

Now need to figure out how to fix JDK-8240576 without causing this issue.
04-12-2020

It is caused by small related fix JDK-8240576 which was also backported into JDK11.0.8-b2.
04-12-2020

java -XX:+UseParallelGC -XX:+UnlockDiagnosticVMOptions -Xms8G -Xmx64G -Xss2M -XX:MaxDirectMemorySize=24G -Xbatch MainSmaller Running with a debug build you should see a crash at the assert in IdealLoopTree::beautify_loops assert( phase->is_member( this, _head->in(2) ), "right edge is loop" ); because _head->in(2) is NULL. Check the run.sh for how to compile the MainSmaller.
02-12-2020

Reproduced with debug build: # Internal Error (/oracle/jdk/open/src/hotspot/share/opto/loopnode.hpp:814), pid=1361565, tid=1361581 # guarantee(n != NULL) failed: No Node. Current CompileTask: C2: 11467 697 b 4 com.humio.jitrex.jvm.R_tmp1::nextMatchInt (5066 bytes) Stack: [0x00007f0f8ceb0000,0x00007f0f8cfb1000], sp=0x00007f0f8cf9e4a0, free space=953k Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x817765] PhaseIdealLoop::has_node(Node*) const+0x21 V [libjvm.so+0xd0e919] PhaseIdealLoop::get_loop(Node*) const+0x23 V [libjvm.so+0xd0e9bd] PhaseIdealLoop::is_member(IdealLoopTree const*, Node*) const+0x27 V [libjvm.so+0xd2e656] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x3f0 V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b V [libjvm.so+0xd2e8b1] IdealLoopTree::beautify_loops(PhaseIdealLoop*)+0x64b ...<more frames>...
05-10-2020

ILW = Guarantee failure during C2 compilation, reproducible, no known workaround but disable C2 compilation of affected method = HMM = P2
25-09-2020

Issue is observed in JDK 11.0.8, 15 and 16 ea builds. OS: Oracle Linux JDK 8u261: Pass JDK 11.0.8+1:Pass JDK 11.0.8+2:Fail JDK 11.0.8+10: Fail JDK 14.0.2:Pass JDK 15+36: Fail JDK 16ea15:Fail Moving it to dev team for further analysis.
18-09-2020