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

Shenandoah: Multiple forwardings detected in JFR Leak Profiler tests

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 24
    • hotspot
    • None
    • gc

      Seems to reproduce intermittently on current mainline like this:

      $ CONF=linux-aarch64-server-fastdebug make test TEST=jdk/jfr/event/oldobject/TestFieldInformation.java TEST_VM_OPTS="-XX:+UseShenandoahGC" JTREG=REPEAT_COUNT=1000

      # A fatal error has been detected by the Java Runtime Environment:
      #
      # Internal Error (/home/shipilev/shipilev-jdk/src/hotspot/share/gc/shenandoah/shenandoahForwarding.inline.hpp:70), pid=32551, tid=32622
      # Error: Shenandoah assert_correct failed; Multiple forwardings

      Referenced from:
        no interior location recorded (probably a plain heap scan, or detached oop)

      Object:
        0x00000000d10317b8 - klass 0x00003800001bd288 java.lang.String
              allocated after mark start
          not after update watermark
              marked strong
              marked weak
              in collection set
        mark: marked(0x00000000fffc0883)
        region: | 64|CS |BTE d1000000, d10321d0, d1040000|TAMS d10317b8|UWM d10321d0|U 200K|T 95984B|G 0B|S 106K|L 107K|CP 0

      Forwardee:
        0x00000000fffc0880 - klass 0x00003800001bd288 java.lang.String
              allocated after mark start
          not after update watermark
              marked strong
              marked weak
          not in collection set
        mark: marked(0x0000000000000007)
        region: | 3071|R |BTE fffc0000, ffff9720, 100000000|TAMS fffc0000|UWM ffff9720|U 229K|T 0B|G 35088B|S 195K|L 0B|CP 0

      Second forwardee:
        0x0000000000000004 - safe print, no details

      --------------- T H R E A D ---------------

      Current thread (0x0000ffff842c2a80): VMThread "VM Thread" [id=32622, stack(0x0000fffe60466000,0x0000fffe60664000) (2040K)]

      Stack: [0x0000fffe60466000,0x0000fffe60664000], sp=0x0000fffe6065fbe0, free space=2022k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0x1868b00] VMError::report_and_die(int, char const*, char const*, std::__va_list, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x4b4 (shenandoahForwarding.inline.hpp:70)
      V [libjvm.so+0x1869358] (vmError.cpp:1611)
      V [libjvm.so+0xa1d754] report_vm_error(char const*, int, char const*, char const*, ...)+0xf4 (debug.cpp:193)
      V [libjvm.so+0xa1d77c] (debug.cpp:149)
      V [libjvm.so+0x1551bc8] ShenandoahAsserts::print_failure(ShenandoahAsserts::SafeLevel, oop, void*, oop, char const*, char const*, char const*, int)+0x258 (shenandoahAsserts.cpp:166)
      V [libjvm.so+0x1552af8] ShenandoahAsserts::assert_correct(void*, oop, char const*, int)+0x8b8 (shenandoahAsserts.cpp:248)
      V [libjvm.so+0x5e97ec] ShenandoahBarrierSet::load_reference_barrier(oop)+0x20c (shenandoahForwarding.inline.hpp:70)
      V [libjvm.so+0x5ec9cc] oop ShenandoahBarrierSet::load_reference_barrier<narrowOop>(unsigned long, oop, narrowOop*)+0x8c (shenandoahBarrierSet.inline.hpp:125)
      V [libjvm.so+0x5ecdec] oop ShenandoahBarrierSet::oop_load<narrowOop>(unsigned long, narrowOop*)+0x6c (shenandoahBarrierSet.inline.hpp:185)
      V [libjvm.so+0x65fff8] AccessInternal::PostRuntimeDispatch<ShenandoahBarrierSet::AccessBarrier<282726ul, ShenandoahBarrierSet>, (AccessInternal::BarrierType)2, 282726ul>::oop_access_barrier(void*)+0x38 (shenandoahBarrierSet.inline.hpp:232)
      V [libjvm.so+0x65bb8c] BFSClosure::do_oop(narrowOop*)+0x5c (accessBackend.hpp:435)
      V [libjvm.so+0x65f2b8] void OopOopIterateDispatch<BFSClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop>(BFSClosure*, oop, Klass*)+0x138 (devirtualizer.inline.hpp:88)
      V [libjvm.so+0x65ab14] BFSClosure::iterate(Edge const*)+0xd4 (iterator.inline.hpp:295)
      V [libjvm.so+0x65af5c] BFSClosure::process_queue()+0x90 (bfsClosure.cpp:175)
      V [libjvm.so+0x1417040] PathToGcRootsOperation::doit()+0x9a0 (pathToGcRootsOperation.cpp:123)
      V [libjvm.so+0x186fa84] VM_Operation::evaluate()+0x1a4 (vmOperations.cpp:75)
      V [libjvm.so+0x1896b9c] VMThread::evaluate_operation(VM_Operation*)+0xbc (vmThread.cpp:283)
      V [libjvm.so+0x1897aa4] VMThread::inner_execute(VM_Operation*)+0x3f4 (vmThread.cpp:427)
      V [libjvm.so+0x1897cb0] VMThread::loop()+0x80 (vmThread.cpp:493)
      V [libjvm.so+0x1897e0c] VMThread::run()+0xac (vmThread.cpp:177)
      V [libjvm.so+0x17814a0] Thread::call_run()+0x120 (thread.cpp:225)
      V [libjvm.so+0x13aabac] thread_native_entry(Thread*)+0x12c (os_linux.cpp:858)
      C [libpthread.so.0+0x7230] start_thread+0xb0
      VM_Operation (0x0000fffe1ba03a60): JFROldObject, mode: safepoint, requested by thread 0x0000ffff84470190

      Events (39 events):
      Event: 1.578 Concurrent reset
      Event: 1.580 Concurrent reset done
      Event: 1.580 Pause Init Mark (unload classes)
      Event: 1.582 Pause Init Mark (unload classes) done
      Event: 1.582 Concurrent marking roots
      Event: 1.583 Concurrent marking roots done
      Event: 1.583 Concurrent marking (unload classes)
      Event: 1.590 Concurrent marking (unload classes) done
      Event: 1.590 Pause Final Mark (unload classes)
      Event: 1.591 Pause Final Mark (unload classes) done
      Event: 1.591 Concurrent thread roots
      Event: 1.591 Concurrent thread roots done
      Event: 1.591 Concurrent weak references
      Event: 1.592 Concurrent weak references done
      Event: 1.592 Concurrent weak roots

            Unassigned Unassigned
            shade Aleksey Shipilev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: