RFR: 8352918: Shenandoah: Verifier does not deactivate barriers as intended

William Kemper wkemper at openjdk.org
Wed Mar 26 19:21:17 UTC 2025


When verifying reachable objects, Shenandoah's verifier clears the `_gc_state` with the intention of deactivating barriers. However, the mechanism for this is a `friend` of the heap and does not toggle the flag to cause threads to use the value set on the verifier's safepoint. The net effect here is that the barriers are _not_ deactivated during verification. Leaving the barriers on while the verifier traverses the heap may have unintended consequences (cards marked, objects evacuated, etc.)

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

Commit messages:
 - Fix verifier's gc_state resettter

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

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


More information about the shenandoah-dev mailing list