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