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

C2: assert(has_node(i)) failed during split thru phi

XMLWordPrintable

      Reproducible with attached test case:

      $ java -XX:-BackgroundCompilation TestLoadSplitThruPhiNull
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/home/roland/jdk-jdk/src/hotspot/share/opto/loopnode.hpp:1003), pid=420882, tid=420900
      # Error: assert(has_node(i)) failed
      #
      # JRE version: OpenJDK Runtime Environment (25.0) (fastdebug build 25-internal-adhoc.roland.jdk-jdk)
      # Java VM: OpenJDK 64-Bit Server VM (fastdebug 25-internal-adhoc.roland.jdk-jdk, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x139fd2a] PhaseIdealLoop::get_ctrl(Node const*)+0x3ea
      #

      call stack:

      Stack: [0x00007f9a48cf1000,0x00007f9a48df1000], sp=0x00007f9a48debd40, free space=1003k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x139fd2a] PhaseIdealLoop::get_ctrl(Node const*)+0x3ea (loopnode.hpp:1003)
      V [libjvm.so+0x13e91ce] PhaseIdealLoop::split_thru_phi(Node*, Node*, int)+0x53e (loopopts.cpp:192)
      V [libjvm.so+0x13ee2b3] PhaseIdealLoop::split_if_with_blocks_pre(Node*)+0x2c3 (loopopts.cpp:1226)
      V [libjvm.so+0x13f33c5] PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)+0x1f5 (loopopts.cpp:1982)
      V [libjvm.so+0x13e42d5] PhaseIdealLoop::build_and_optimize()+0x10c5 (loopnode.cpp:4889)
      V [libjvm.so+0xa9f62f] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x3cf (loopnode.hpp:1113)
      V [libjvm.so+0xa985bc] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x5c (compile.cpp:2183)
      V [libjvm.so+0xa99322] Compile::Optimize()+0xa92 (compile.cpp:2430)
      V [libjvm.so+0xa9d2cf] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1baf (compile.cpp:852)
      V [libjvm.so+0x8dba18] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1c8 (c2compiler.cpp:142)
      V [libjvm.so+0xaa9de1] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xad1 (compileBroker.cpp:2319)
      V [libjvm.so+0xaaad48] CompileBroker::compiler_thread_loop()+0x4e8 (compileBroker.cpp:1977)
      V [libjvm.so+0xfc3f1e] JavaThread::thread_main_inner()+0xee (javaThread.cpp:776)
      V [libjvm.so+0x1b09386] Thread::call_run()+0xb6 (thread.cpp:232)
      V [libjvm.so+0x160f618] thread_native_entry(Thread*)+0x128 (os_linux.cpp:860)
      C [libc.so.6+0x961b7] start_thread+0x377

      assert added by 8343148 is causing the failure but underlying (minor) issue has likely been present for a while.

            roland Roland Westrelin
            roland Roland Westrelin
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: