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

Must not use HeapRegionRemSet::add_reference() during evacuation

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Not an Issue
    • Affects Version/s: 12
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: