RFR: 8376970: Shenandoah: Verifier should do basic verification before touching oops

Aleksey Shipilev shade at openjdk.org
Mon Feb 2 18:14:57 UTC 2026


Noticed this when working on [JDK-8376749](https://bugs.openjdk.org/browse/JDK-8376749). When Verifier is about to fail on broken oop, it would decode the broken compressed pointer before doing any verification on it. So the end result is that we _at best_ catch the non-verbose assert in shared code in debug builds, or we crash the VM with opaque error in release builds, instead of rich Shenandoah verification failure.

We need to tighten this up, so that Verifier does work properly in these conditions.

Additional testing:
 - [x] Ad-hoc crashes now show proper diagnostics
 - [x] Linux x86_64 server fastdebug, `hotspot_gc_shenandoah`

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

Commit messages:
 - Also make sure the verificaion runs in release mode
 - Other paths too
 - Fix

Changes: https://git.openjdk.org/jdk/pull/29527/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29527&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8376970
  Stats: 39 lines in 1 file changed: 27 ins; 5 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/29527.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29527/head:pull/29527

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


More information about the shenandoah-dev mailing list