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

C2: assert(iff->in(1)->is_OpaqueNotNull()) failed: must be OpaqueNotNull

XMLWordPrintable

    • master

      The attached Test fails after JDK-8342043 with an assertion which was introduced as a best guess. We would bail out anyways but I was unsure if we can even end up with other nodes there. As it turns out, we can. I think we can safely remove the assertion again.

      To reproduce:
      $ java -XX:CompileOnly=Test::test* -Xcomp Test.java

      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/home/christian/jdk2/open/src/hotspot/share/opto/escape.cpp:584), pid=333608, tid=333622
      # assert(iff->in(1)->is_OpaqueNotNull()) failed: must be OpaqueNotNull
      #
      # JRE version: Java(TM) SE Runtime Environment (24.0) (slowdebug build 24-internal-2024-10-31-0914380.christian...)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 24-internal-2024-10-31-0914380.christian..., compiled mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0xc34198] ConnectionGraph::can_reduce_check_users(Node*, unsigned int) const+0x7e2
      ..............
      Command Line: -XX:CompileOnly=Test::test* -Xcomp --add-modules=ALL-DEFAULT jdk.compiler/com.sun.tools.javac.launcher.SourceLauncher Test.java
      ..............
      Current CompileTask:
      C2:6840 84 b 4 Test::testParsePredicate (58 bytes)

      Stack: [0x0000779ff40c7000,0x0000779ff41c7000], sp=0x0000779ff41c19f0, free space=1002k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xc34198] ConnectionGraph::can_reduce_check_users(Node*, unsigned int) const+0x7e2 (escape.cpp:584)
      V [libjvm.so+0xc34514] ConnectionGraph::can_reduce_phi(PhiNode*) const+0x100 (escape.cpp:634)
      V [libjvm.so+0xc3df6e] ConnectionGraph::adjust_scalar_replaceable_state(JavaObjectNode*, Unique_Node_List&)+0x438 (escape.cpp:2945)
      V [libjvm.so+0xc32a0f] ConnectionGraph::compute_escape()+0xbc1 (escape.cpp:309)
      V [libjvm.so+0xc31dae] ConnectionGraph::do_analysis(Compile*, PhaseIterGVN*)+0x11a (escape.cpp:119)
      V [libjvm.so+0xa099b4] Compile::Optimize()+0x7fc (compile.cpp:2332)
      V [libjvm.so+0xa027de] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x15e0 (compile.cpp:852)
      V [libjvm.so+0x8ccb91] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1f3 (c2compiler.cpp:142)
      V [libjvm.so+0xa256cf] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xa1f (compileBroker.cpp:2303)
      V [libjvm.so+0xa24150] CompileBroker::compiler_thread_loop()+0x40e (compileBroker.cpp:1961)
      V [libjvm.so+0xa43a31] CompilerThread::thread_entry(JavaThread*, JavaThread*)+0x89 (compilerThread.cpp:65)
      V [libjvm.so+0xe87116] JavaThread::thread_main_inner()+0x168 (javaThread.cpp:759)
      V [libjvm.so+0xe86fab] JavaThread::run()+0x1d7 (javaThread.cpp:744)
      V [libjvm.so+0x16273d3] Thread::call_run()+0x1b9 (thread.cpp:234)
      V [libjvm.so+0x13a500a] thread_native_entry(Thread*)+0x1cb (os_linux.cpp:858)

            chagedorn Christian Hagedorn
            chagedorn Christian Hagedorn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: