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

Must not use HeapRegionRemSet::add_reference() during evacuation

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not an Issue
    • P3
    • None
    • 12
    • hotspot
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: