Integrated: 8280454: G1: ClassLoaderData verification keeps CLDs live that causes problems with VerifyDuringGC during Remark

Thomas Schatzl tschatzl at openjdk.java.net
Fri Jun 10 08:00:27 UTC 2022


On Mon, 30 May 2022 17:09:35 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

This pull request has now been integrated.

Changeset: 94b473e4
Author:    Thomas Schatzl <tschatzl at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/94b473e4642a5a4626faeb73341b4aea128ccb31
Stats:     140 lines in 6 files changed: 123 ins; 5 del; 12 mod

8280454: G1: ClassLoaderData verification keeps CLDs live that causes problems with VerifyDuringGC during Remark

Reviewed-by: stefank, coleenp

-------------

PR: https://git.openjdk.org/jdk/pull/8949


More information about the hotspot-runtime-dev mailing list