JDK-8219520 : assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11,12,13
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux_ubuntu
  • CPU: x86_64
  • Submitted: 2019-02-21
  • Updated: 2022-03-10
  • Resolved: 2019-05-03
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
11.0.16-oracleFixed 13 b20Fixed
Related Reports
Cloners :  
Relates :  
Description
Found this assert in Apache Lucene tests ([https://jenkins.thetaphi.de/job/Lucene-Solr-master-Linux/23707/]):

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/buildbot/worker/jdk12u-linux/build/src/hotspot/share/opto/node.cpp:82), pid=3092, tid=3469
#  assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit
#
# JRE version: OpenJDK Runtime Environment (12.0) (fastdebug build 12-testing+0-builds.shipilev.net-openjdk-jdk12-b109-20190215-jdk-1229)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 12-testing+0-builds.shipilev.net-openjdk-jdk12-b109-20190215-jdk-1229, mixed mode, tiered, concurrent mark sweep gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x1444382]  Node::verify_construction()+0x132
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

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

Command Line: -XX:-UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/jenkins/workspace/Lucene-Solr-master-Linux/heapdumps -ea -esa --illegal-access=deny -Dtests.prefix=tests -Dtests.seed=3E3F263901CCE925 -Xmx512M -Dtests.iters= -Dtests.verbose=false -Dtests.infostream=false -Dtests.codec=random -Dtests.postingsformat=random -Dtests.docvaluesformat=random -Dtests.locale=random -Dtests.timezone=random -Dtests.directory=random -Dtests.linedocsfile=europarl.lines.txt.gz -Dtests.luceneMatchVersion=9.0.0 -Dtests.cleanthreads=perMethod -Djava.util.logging.config.file=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/tools/junit4/logging.properties -Dtests.nightly=false -Dtests.weekly=false -Dtests.monster=false -Dtests.slow=true -Dtests.asserts=true -Dtests.multiplier=3 -DtempDir=./temp -Djava.io.tmpdir=./temp -Dcommon.dir=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene -Dclover.db.dir=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/build/clover/db -Djava.security.policy=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/tools/junit4/tests.policy -Dtests.LUCENE_VERSION=9.0.0 -Djetty.testMode=1 -Djetty.insecurerandom=1 -Dsolr.directoryFactory=org.apache.solr.core.MockDirectoryFactory -Djava.awt.headless=true -Djdk.map.althashing.threshold=0 -Dtests.src.home=/home/jenkins/workspace/Lucene-Solr-master-Linux -Djava.security.egd=file:/dev/./urandom -Djunit4.childvm.cwd=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/build/backward-codecs/test/J1 -Djunit4.tempDir=/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/build/backward-codecs/test/temp -Djunit4.childvm.id=1 -Djunit4.childvm.count=3 -Dfile.encoding=UTF-8 -Djava.security.manager=org.apache.lucene.util.TestSecurityManager -Dtests.filterstacks=true -Dtests.leaveTemporary=false -Dtests.badapples=false com.carrotsearch.ant.tasks.junit4.slave.SlaveMainSafe -eventsfile /home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/build/backward-codecs/test/temp/junit4-J1-20190221_070712_8288493559627118193007.events @/home/jenkins/workspace/Lucene-Solr-master-Linux/lucene/build/backward-codecs/test/temp/junit4-J1-20190221_070712_8285539811322459305678.suites -stdin

Host: serv1.sd-datasolutions.de, Intel(R) Xeon(R) CPU E3-1275 v5 @ 3.60GHz, 8 cores, 62G, Ubuntu 18.04.2 LTS
Time: Thu Feb 21 07:10:01 2019 UTC elapsed time: 167 seconds (0d 0h 2m 47s)

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

Current thread (0x00007f6d5a09f800):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=3469, stack(0x00007f6d27cfb000,0x00007f6d27dfc000)]


Current CompileTask:
C2: 167688 11159   !   4       org.apache.lucene.codecs.lucene50.Lucene50CompoundFormat::write (374 bytes)

Stack: [0x00007f6d27cfb000,0x00007f6d27dfc000],  sp=0x00007f6d27df5460,  free space=1001k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1444382]  Node::verify_construction()+0x132
V  [libjvm.so+0x1445216]  Node::Node(unsigned int)+0x56
V  [libjvm.so+0x877df0]  PhiNode::make(Node*, Node*, Type const*, TypePtr const*)+0x50
V  [libjvm.so+0x128e608]  PhaseIdealLoop::clone_loop_handle_data_uses(Node*, Node_List&, IdealLoopTree*, IdealLoopTree*, Node_List*&, Node_List*&, Node_List*&, Node_List&, unsigned int, PhaseIdealLoop::CloneLoopMode)+0x748
V  [libjvm.so+0x128f98c]  PhaseIdealLoop::clone_loop(IdealLoopTree*, Node_List&, int, PhaseIdealLoop::CloneLoopMode, Node*)+0xe2c
V  [libjvm.so+0x126083d]  PhaseIdealLoop::create_slow_version_of_loop(IdealLoopTree*, Node_List&, int, PhaseIdealLoop::CloneLoopMode)+0xd8d
V  [libjvm.so+0x12663c9]  PhaseIdealLoop::do_unswitching(IdealLoopTree*, Node_List&)+0x109
V  [libjvm.so+0x125b9f1]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x141
V  [libjvm.so+0x12827dc]  PhaseIdealLoop::build_and_optimize(LoopOptsMode)+0x104c
V  [libjvm.so+0xa33d2e]  Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x2fe
V  [libjvm.so+0xa375a7]  Compile::Optimize()+0xb57
V  [libjvm.so+0xa38dbb]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool, DirectiveSet*)+0x13db
V  [libjvm.so+0x82fd88]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, DirectiveSet*)+0x2e8
V  [libjvm.so+0xa4562b]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x35b
V  [libjvm.so+0xa462f8]  CompileBroker::compiler_thread_loop()+0x1e8
V  [libjvm.so+0x1908f27]  JavaThread::thread_main_inner()+0x1e7
V  [libjvm.so+0x1904865]  Thread::call_run()+0x75
V  [libjvm.so+0x14da750]  thread_native_entry(Thread*)+0x110

Comments
Fix Request (11u): Should get backported for parity with 11.0.16-oracle. Applies partially cleanly. Review: https://github.com/openjdk/jdk11u-dev/pull/868 Nightly tests have passed. Backport requested as part of JDK-8216137.
09-03-2022

URL: http://hg.openjdk.java.net/jdk/jdk/rev/fc7627bf4b01 User: phedlin Date: 2019-05-03 09:00:17 +0000
03-05-2019

The log-files uploaded by Robbin manifests the problem from a much "earlier" phase (during parsing). Perhaps best to address these asserts as a separate issue.
26-04-2019

I saw another one in: applications/microbenchmarks/other/Test.java#id194 Adding hs_err and replay: hs_err_pid10120.applications_microbenchmarks_other_Test.java_id194.log replay_pid10120.applications_microbenchmarks_other_Test.java_id194.log
01-04-2019

Patric, I'm assigning this to you for now. Maybe we can fix this together with JDK-8216137.
21-02-2019

This is very similar to JDK-8216137. ILW = Assert during compilation (should not affect product builds), with Lucene CI, disable LoopUnswitching or disable affected method from compilation = MMM = P3
21-02-2019