JDK-8317236 : assert(node->_last_del == _last) failed: must have deleted the edge just produced
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux_ubuntu
  • CPU: x86_64
  • Submitted: 2023-09-25
  • Updated: 2023-10-03
  • Resolved: 2023-10-03
Related Reports
Duplicate :  
Description
ADDITIONAL SYSTEM INFORMATION :
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug compiled mode linux-amd64 compressed oops)

A DESCRIPTION OF THE PROBLEM :
I ran a regression test on JDK8u392 and found that the JVM crashed with -Xcomp.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/data//jdk8u/hotspot/src/share/vm/opto/node.cpp:109), pid=3150, tid=0x00007f753dd4d700
#  assert(node->_last_del == _last) failed: must have deleted the edge just produced
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug compiled mode linux-amd64 compressed oops)
# Failed to write core dump. 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
#

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
java -Xcomp compiler.c2.TestUnreachableRegionDuringCCP

ACTUAL -
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/node.cpp:109
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/data//jdk8u/hotspot/src/share/vm/opto/node.cpp:109), pid=37364, tid=0x00007f5d5b161700
#  assert(node->_last_del == _last) failed: must have deleted the edge just produced
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug compiled mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home//repository//toreport/TestUnreachableRegionDuringCCP_09_23_15_00_38/hs_err_pid37364.log
#
# Compiler replay data is saved as:
# /home//repository//toreport/TestUnreachableRegionDuringCCP_09_23_15_00_38/replay_pid37364.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

---------- BEGIN SOURCE ----------
package compiler.c2;

import jdk.test.lib.Asserts;

public class TestUnreachableRegionDuringCCP {
    static int iFld1 = -1;
    static int iFld2 = -1;
    static int[] iArrFld = new int[100];

    public static void test() {
        int i = 1;
        do {
            iArrFld[i] = iFld1;
            iFld1 = 42;
            for (int j = 1; j < 5; j++) {
                if (i != 0) {
                    return; // Always returns
                }
                iFld2 += j;
            }
        } while (++i < 10);
    }

    public static void main(String[] args) {
        test();
        Asserts.assertEQ(iFld1, 42);
        Asserts.assertEQ(iFld2, -1);
        Asserts.assertEQ(iArrFld[1], -1);
    }
}
---------- END SOURCE ----------

FREQUENCY : always



Comments
The attached test is the actual regression test from JDK-8210387, so it's definitely a duplicate (the issue was not fixed in OpenJDK 8u).
03-10-2023

Issue is not reproduced. Crash is not observed for oracle JDK 8u381 OS: Windows 10 JDK 8u381: Pass JDK 8u381 Fastdebug : Pass OS: Ubuntu 20.08 JDK 8u381: Pass JDK 8u381 Fastdebug : Pass Looks to be a duplicate of JDK-8210387 (Issue fixed in 8u371) Attaching crash logs from submitter(hs_err_pid63547.log) Moving it to dev team for further analysis.
03-10-2023

additional information requested from submitter: ======================================== The test program imports "jdk.test.lib.Asserts" for line 26 to 29, which is not shared. Could you please share the complete testcase to reproduce this issue. =========================================
28-09-2023