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

Export ClassLoaderData claim state to support interleaved object traversal

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 10
    • 10
    • hotspot
    • None
    • 10
    • b40

        We have a closed component that uses ClassLoaderDataGraph::clear_claimed_marks() to get a set of fresh claiming bits for object traversal.

        This interferes with the concurrent marking GCs, that are using this information to determine if a CLD has been marked through our not.

        The effect is that there's a possibility that some class loaders won't get marked and classes might be prematurely unloaded, which would lead to crashes.

        We probably would want to redesign the CLDG claiming, to allow multiple claim sets. But in the meantime, a work around could be that the closed component introduce a mechanism that will save and restore the original claim bits.

        In order to add this save/restore mechanism, we would need to publicly export the ClassLoaderData "claim" set of member functions.

              mgronlun Markus Grönlund
              mgronlun Markus Grönlund
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: