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

Race between Card Redirtying and Freeing Collection Set regions results in missing remembered set entries with G1

XMLWordPrintable

    • gc
    • b26
    • generic
    • generic
    • Verified

      gc/logging/TestPrintReferences.java failed with a SIGBUS:

      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGBUS (0xa) at pc=0x0000000107598b24, pid=46324, tid=24067
      #
      # JRE version: Java(TM) SE Runtime Environment (17.0+22) (fastdebug build 17-ea+22-LTS-1968)
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-ea+22-LTS-1968, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
      # Problematic frame:
      # V [libjvm.dylib+0xd98b24] oopDesc::size_given_klass(Klass*)+0x24
      #
      # Core dump will be written. Default location: core.46324
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      --------------- S U M M A R Y ------------

      Command Line: -Xlog:gc+ref+phases=debug -XX:+UseG1GC -Xmx32M gc.logging.TestPrintReferences$GCTest

      Host: "Macmini9,1" arm64 1 MHz, 8 cores, 16G, Darwin 20.3.0, macOS 11.2.3 (20D91)
      Time: Wed May 12 21:26:48 2021 GMT elapsed time: 0.400196 seconds (0d 0h 0m 0s)

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

      Current thread (0x000000012083ede0): GCTaskThread "GC Thread#1" [stack: 0x00000001701e4000,0x00000001703e7000] [id=24067]

      Stack: [0x00000001701e4000,0x00000001703e7000], sp=0x00000001703e68e0, free space=2058k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0xd98b24] oopDesc::size_given_klass(Klass*)+0x24
      V [libjvm.dylib+0x6cb8dc] G1RegionMarkStatsCache::add_live_words(oop)+0x184
      V [libjvm.dylib+0x68093c] G1FullGCMarker::mark_object(oop)+0x4b4
      V [libjvm.dylib+0x680b54] void G1FullGCMarker::mark_and_push<narrowOop>(narrowOop*)+0x58
      V [libjvm.dylib+0x6810a4] void InstanceRefKlass::oop_oop_iterate<narrowOop, G1MarkAndPushClosure>(oop, G1MarkAndPushClosure*)+0x15c
      V [libjvm.dylib+0x680eb4] void OopOopIterateDispatch<G1MarkAndPushClosure>::Table::oop_oop_iterate<InstanceRefKlass, narrowOop>(G1MarkAndPushClosure*, oop, Klass*)+0x4c
      V [libjvm.dylib+0x695c28] void oopDesc::oop_iterate<G1MarkAndPushClosure>(G1MarkAndPushClosure*)+0x100
      V [libjvm.dylib+0x694648] G1FullGCMarker::follow_object(oop)+0x1c0
      V [libjvm.dylib+0x694018] G1FullGCMarker::drain_stack()+0x234
      V [libjvm.dylib+0x693b6c] G1FullGCMarker::complete_marking(GenericTaskQueueSet<OverflowTaskQueue<oop, (MEMFLAGS)5, 131072u>, (MEMFLAGS)5>*, GenericTaskQueueSet<OverflowTaskQueue<ObjArrayTask, (MEMFLAGS)5, 131072u>, (MEMFLAGS)5>*, TaskTerminator*)+0x40
      V [libjvm.dylib+0x693048] G1FullGCMarkTask::work(unsigned int)+0xd4
      V [libjvm.dylib+0x1010b48] GangWorker::run_task(WorkData)+0x74
      V [libjvm.dylib+0x1010a20] GangWorker::loop()+0x48
      V [libjvm.dylib+0x10108d4] GangWorker::initialize()+0x0
      V [libjvm.dylib+0xf2139c] Thread::call_run()+0x21c
      V [libjvm.dylib+0xd00730] thread_native_entry(Thread*)+0x160
      C [libsystem_pthread.dylib+0x706c] _pthread_start+0x140

            tschatzl Thomas Schatzl
            mikael Mikael Vidstedt
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: