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

GenShen: Crash when preempting old-gen concurrent marking

XMLWordPrintable

    • gc

      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0x00007f2563c12cef, pid=12443, tid=12476
      #
      # JRE version: OpenJDK Runtime Environment (21.0.5) (build 21.0.5-internal-adhoc.kdnilsen.DDBSN.experiment.21)
      # Java VM: OpenJDK 64-Bit Server VM (21.0.5-internal-adhoc.kdnilsen.DDBSN.experiment.21, mixed mode, tiered, compressed oops, compressed class ptrs, shenandoah gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0x63fcef] ClassLoaderData::oops_do(OopClosure*, int, bool)+0x2f
      #
      ...
      --------------- T H R E A D ---------------

      Current thread (0x00007f255c11adb0): WorkerThread "Shenandoah GC Threads#10" [id=12476, stack(0x00007f252bcfe000,0x00007f252bdfe000) (1024K)]

      Stack: [0x00007f252bcfe000,0x00007f252bdfe000], sp=0x00007f252bdfcb50, free space=1018k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x63fcef] ClassLoaderData::oops_do(OopClosure*, int, bool)+0x2f (atomic.hpp:550)
      V [libjvm.so+0xe84bee] void OopOopIterateDispatch<ShenandoahMarkRefsClosure<(ShenandoahGenerationType)3> >::Table::oop_oop_iterate<InstanceKlass, narrowOop>(ShenandoahMarkRefsClosure<(ShenandoahGenerationType)3>*, oopDesc*, Klass*)+0x2e (iterator.inline.hpp:49)
      V [libjvm.so+0xe6e6a3] ShenandoahMark::mark_loop(unsigned int, TaskTerminator*, ShenandoahReferenceProcessor*, ShenandoahGenerationType, bool, StringDedupMode, StringDedup::Requests*)+0xe13 (iterator.inline.hpp:295)
      V [libjvm.so+0xe121ba] ShenandoahConcurrentMarkingTask<(ShenandoahGenerationType)3>::work(unsigned int)+0xda (shenandoahConcurrentMark.cpp:73)
      V [libjvm.so+0x109cea0] WorkerThread::run()+0x80 (workerThread.cpp:70)
      V [libjvm.so+0xfe4808] Thread::call_run()+0xa8 (thread.cpp:221)
      V [libjvm.so+0xd1510a] thread_native_entry(Thread*)+0xda (os_linux.cpp:790)

      siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00000021fcc0815e

      Registers:
      RAX=0x0000000000000000, RBX=0x00000007daf86870, RCX=0x0000000000000000, RDX=0x0000000000000003
      RSP=0x00007f252bdfcb50, RBP=0x00007f252bdfcb70, RSI=0x0000000000000003, RDI=0x00000021fcc08136
      R8 =0x00000021fcc0815e, R9 =0x0000000000000000, R10=0x00000007d81832f0, R11=0x00007f2564ba6310
      R12=0x00007f252bdfcca0, R13=0x00000006475bbba8, R14=0x00007f252bdfcca0, R15=0x00007f255c0f58e0
      RIP=0x00007f2563c12cef, EFLAGS=0x0000000000010206, CSGSFS=0x002b000000000033, ERR=0x0000000000000004
        TRAPNO=0x000000000000000e

      This problem is only seen when running an aggressive workload with small heap size requiring very frequent GC triggers.

      Attached are multiple hs_err files with accompanying GC logs.

            kdnilsen Kelvin Nilsen
            kdnilsen Kelvin Nilsen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: