RFR: 8280454: G1: ClassLoaderData verification keeps CLDs live that causes problems with VerifyDuringGC during Remark [v5]
Coleen Phillimore
coleenp at openjdk.java.net
Thu Jun 9 19:30:06 UTC 2022
On Thu, 9 Jun 2022 14:37:44 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> Hi all,
>>
>> can I have reviews for this change that makes a few CLDG iterations no-keepalive during GC pauses?
>>
>> This fixes a bug where the `VerifyDuringGC` verification otherwise kept alive all classes, effectively disabling class unloading during (g1) concurrent mark.
>>
>> Afaict this verification code is only every called during GC pauses, so the change should be fine.
>>
>> As for the change itself, I tried to avoid cluttering the code with `ClassLoaderDataGraphIterator<>` by using typedefs - unfortunately only C++ 17 allows omitting the `<>` if all template parameters are defaulted.
>>
>> There is also a new test case for just this.
>>
>> Testing: tier1-5
>>
>> Thanks,
>> Thomas
>
> Thomas Schatzl has updated the pull request incrementally with one additional commit since the last revision:
>
> Change Dictionary verification to use keep_alive peeking of the _class_loader
Looks good. Thank you for fixing this.
-------------
Marked as reviewed by coleenp (Reviewer).
PR: https://git.openjdk.org/jdk/pull/8949
More information about the hotspot-runtime-dev
mailing list