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

MethodData is not correctly initialized with TieredStopAtLevel=3

    XMLWordPrintable

    Details

    • Subcomponent:
    • Introduced In Build:
      b08
    • Introduced In Version:
      17
    • Resolved In Build:
      b09

      Description

      After JDK-8251462, we are seeing the following assert in Valhalla testing with TieredStopAtLevel=3:

      # Internal Error (/oracle/valhalla/open/src/hotspot/share/c1/c1_LIRGenerator.cpp:967), pid=1143369, tid=1143383
      # assert(data != __null) failed: must have profiling data

      Current CompileTask:
      C1: 533 169 b 3 compiler.valhalla.inlinetypes.TestArrays::<clinit> (134 bytes)

      Stack: [0x00007f187003c000,0x00007f187013d000], sp=0x00007f187013ace0, free space=1019k
      Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x7b6a64] LIRGenerator::profile_branch(If*, Instruction::Condition)+0x424
      V [libjvm.so+0x7dcfc1] LIRGenerator::do_If(If*)+0x1e1
      V [libjvm.so+0x7b06c4] LIRGenerator::do_root(Instruction*)+0xa4
      V [libjvm.so+0x7b381e] non-virtual thunk to LIRGenerator::block_do(BlockBegin*)+0x5e
      V [libjvm.so+0x773d74] BlockList::iterate_forward(BlockClosure*)+0x94
      V [libjvm.so+0x7286b6] Compilation::emit_lir()+0x5d6
      V [libjvm.so+0x72b65b] Compilation::compile_java_method()+0x43b
      V [libjvm.so+0x72c1f0] Compilation::compile_method()+0x1d0
      V [libjvm.so+0x72cc66] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*)+0x3c6
      V [libjvm.so+0x72e113] Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1a3
      V [libjvm.so+0xa68ff1] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xea1
      V [libjvm.so+0xa69c78] CompileBroker::compiler_thread_loop()+0x5a8
      V [libjvm.so+0x192eea6] JavaThread::thread_main_inner()+0x256
      V [libjvm.so+0x1935810] Thread::call_run()+0x100
      V [libjvm.so+0x15f74e6] thread_native_entry(Thread*)+0x116

      A quick investigation showed that CompilerConfig::is_c1_simple_only() incorrectly returns true.

      It's concerning that none of our mainline testing caught this.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              iveresov Igor Veresov
              Reporter:
              thartmann Tobias Hartmann
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: