RFR: 8365792: GenShen: assertion "Generations aren't reconciled"

William Kemper wkemper at openjdk.org
Thu Sep 18 19:58:56 UTC 2025


The coalesce-and-fill phase of an old gc cycle may be resumed at any time _without_ running a Shenandoah vm operation. The assertion itself is only meant to run during an operation which changes the active/gc generation. However, the assertion is made in places that may also run concurrently. The original assertion would be enforced if _any_ vm operation were running. For example, the assertions failures in the ticket show Shenandoah concurrently making old regions parsable (this assert should not be enforced) when a heap inspection operation takes a safepoint and (erroneously) causes this assertion to be enforced.

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

Commit messages:
 - Only shenandoah vm operations participate in active/gc generation scheme

Changes: https://git.openjdk.org/jdk/pull/27373/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27373&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365792
  Stats: 3 lines in 1 file changed: 1 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/27373.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27373/head:pull/27373

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


More information about the hotspot-gc-dev mailing list