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

G1 only removes self forwarding pointers for last collection set increment

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 13, 14, 15, 16
    • Fix Version/s: 16
    • Component/s: hotspot
    • Subcomponent:
      gc
    • Resolved In Build:
      b20
    • Verification:
      Verified

      Description

      The code to process regions where evacuation failed only processes the last increment. This leaves forwarded pointers in the mark word of some objects.

      This is wrong in case there is an evacuation failure caused by reference processing in a region that has been evacuated in earlier evacuation increments. Reference processing (e.g. finalizers) can resurrect an otherwise unreachable object at the very end of the collection, that can't be copied and is located in a region evacuated in an earlier increment.

      This optimization to only look at the last increment for removal of self forwarding pointers has been introduced in JDK-8218668.

      This may cause crashes like JDK-8248438. Until changes to young gen sizing in JDK-8244603 this crashes has been a very rare occurrence.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved: