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

Dying objects are published from users of CollectedHeap::object_iterate

XMLWordPrintable

    • gc
    • b27
    • Verified

        Caution needs to be taken when CollectedHeap::object_iterate is used. It may:
        - Return non-reachable objects - for example, when G1 walks the prev bitmap
        - Return the Reference.referent without an appropriate resurrection barrier
        - Return an object loaded without a "strong"/"marking" barrier

        These objects should not escape the confines of the active safepoint that calls object_iterate. If they do we run the risk of various crashes when the objects get garbage collected.

        Unfortunately, there are a few closures that do this. The once we have identified are:
        - HeapInspection::find_instances_at_safepoint
        - JVMTI object tagging

        There might be some merit to solving this by altering the object_iterate API, but for now we'd like to fix the two problematic areas listed above. The suggestion is to introduce a CollectedHeap::keep_alive function that notifies the GC that the object should be kept alive the current GC cycle (if active).

              stefank Stefan Karlsson
              stefank Stefan Karlsson
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: