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

Must not use HeapRegionRemSet::add_reference() during evacuation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 12
    • hotspot
    • gc

      G1ScanObjsDuringUpdateRSClosure::do_oop_work() uses add_reference() to update remembered set entries of newly copied objects in other regions.

      G1 must not do this: the HRRS implementation might modify remembered sets of random other HRRSes when coarsening from fine to coarse. Since other threads might be iterating over a victim HRRS at the same time, we might miss iterating over some remembered set entries of that modified HRRS.

      The HRRSIterator is _not_ concurrent modification safe.

      There is no particular crash in current code that could be attributed to this issue but it is theoretically possible that remembered set entries can be missed because of that even in current code.

            tschatzl Thomas Schatzl
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: