RFR: 8280454: G1: ClassLoaderData verification keeps CLDs live that causes problems with VerifyDuringGC during Remark [v3]

Thomas Schatzl tschatzl at openjdk.java.net
Wed Jun 1 10:50:33 UTC 2022


> 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:

  Remove unnecessary test change

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/8949/files
  - new: https://git.openjdk.java.net/jdk/pull/8949/files/9e66fc7c..7f16efea

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=8949&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=8949&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8949.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8949/head:pull/8949

PR: https://git.openjdk.java.net/jdk/pull/8949


More information about the hotspot-runtime-dev mailing list