Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8336778

[lworld] C2 compilation hits "invalid node class" assert when merging object field values

XMLWordPrintable

      Test java/lang/ProcessHandle/InfoTest.java run with --enable-preview and -Xcomp causes a VM crash with the following message:

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/open/src/hotspot/share/opto/node.hpp:987), pid=599485, tid=599502
      # assert(is_InlineType()) failed: invalid node class: ConP
      #
      # JRE version: Java(TM) SE Runtime Environment (23.0) (fastdebug build 23-lworld5ea-2024-06-21-1558186.fred...)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-lworld5ea-2024-06-21-1558186.fred..., compiled mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0xe9d2de] Node::as_InlineType() const [clone .part.0]+0xe
      #

      Stack trace:

      Current thread (0x00007c32204703c0): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=599502, stack(0x00007c3201800000,0x00007c3201900000) (1024K)]


      Current CompileTask:
      C2:108553 12401 b 4 java.lang.ProcessHandleImpl$Info::totalCpuDuration (28 bytes)

      Stack: [0x00007c3201800000,0x00007c3201900000], sp=0x00007c32018fc700, free space=1009k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xe9d2de] Node::as_InlineType() const [clone .part.0]+0xe (node.hpp:987)
      V [libjvm.so+0xe9e762] InlineTypeNode::merge_with(PhaseGVN*, InlineTypeNode const*, int, bool)+0x4c2 (node.hpp:987)
      V [libjvm.so+0x15b05f6] Parse::merge_common(Parse::Block*, int)+0x586 (parse1.cpp:1963)
      V [libjvm.so+0x15b32d6] Parse::do_all_blocks()+0x136 (parse1.cpp:745)
      V [libjvm.so+0x15b7ae6] Parse::Parse(JVMState*, ciMethod*, float)+0xe46 (parse1.cpp:649)
      V [libjvm.so+0x87bebc] ParseGenerator::generate(JVMState*)+0x16c (callGenerator.cpp:100)
      V [libjvm.so+0xa3a941] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1781 (compile.cpp:804)
      V [libjvm.so+0x878ce2] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1f2 (c2compiler.cpp:143)
      V [libjvm.so+0xa46cec] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x92c (compileBroker.cpp:2305)
      V [libjvm.so+0xa47968] CompileBroker::compiler_thread_loop()+0x458 (compileBroker.cpp:1964)

      Current thread (0x00007c32204703c0): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=599502, stack(0x00007c3201800000,0x00007c3201900000) (1
      024K)]


      Current CompileTask:
      C2:108553 12401 b 4 java.lang.ProcessHandleImpl$Info::totalCpuDuration (28 bytes)

      Stack: [0x00007c3201800000,0x00007c3201900000], sp=0x00007c32018fc700, free space=1009k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xe9d2de] Node::as_InlineType() const [clone .part.0]+0xe (node.hpp:987)
      V [libjvm.so+0xe9e762] InlineTypeNode::merge_with(PhaseGVN*, InlineTypeNode const*, int, bool)+0x4c2 (node.hpp:987)
      V [libjvm.so+0x15b05f6] Parse::merge_common(Parse::Block*, int)+0x586 (parse1.cpp:1963)
      V [libjvm.so+0x15b32d6] Parse::do_all_blocks()+0x136 (parse1.cpp:745)
      V [libjvm.so+0x15b7ae6] Parse::Parse(JVMState*, ciMethod*, float)+0xe46 (parse1.cpp:649)
      V [libjvm.so+0x87bebc] ParseGenerator::generate(JVMState*)+0x16c (callGenerator.cpp:100)
      V [libjvm.so+0xa3a941] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1781 (compile.cpp:804)
      V [libjvm.so+0x878ce2] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1f2 (c2compiler.cpp:143)
      V [libjvm.so+0xa46cec] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x92c (compileBroker.cpp:2305)
      V [libjvm.so+0xa47968] CompileBroker::compiler_thread_loop()+0x458 (compileBroker.cpp:1964)
      V [libjvm.so+0xf4987c] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:722)
      V [libjvm.so+0x1875f56] Thread::call_run()+0xb6 (thread.cpp:221)
      V [libjvm.so+0x155fd87] thread_native_entry(Thread*)+0x127 (os_linux.cpp:816)
      C [libc.so.6+0x9ca94]
      Registers:
      RAX=0x00007c32292f5000, RBX=0x0000000000000000, RCX=0x0000000000000804, RDX=0x00007c31b28af0a8
      RSP=0x00007c32018fc700, RBP=0x00007c32018fc700, RSI=0x0000000000000000, RDI=0x00007c31b28af0a8
      R8 =0x0000000000000000, R9 =0x00007c31baef19d8, R10=0x00007c31baef1901, R11=0x00007c31a03ebe28
      R12=0x00007c31a03eb638, R13=0x0000000000000004, R14=0x00007c32018fccf0, R15=0x00007c31a03eba08
      RIP=0x00007c3227a9d2de, EFLAGS=0x0000000000010287, CSGSFS=0x002b000000000033, ERR=0x0000000000000006
        TRAPNO=0x000000000000000e

      The VM crash occurs on both x64 and aarch64.

            thartmann Tobias Hartmann
            fparain Frederic Parain
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: