RFR: 8352508: [Redo] G1: Pinned regions with pinned objects only reachable by native code crash VM
Thomas Schatzl
tschatzl at openjdk.org
Fri Mar 21 11:16:56 UTC 2025
Hi all,
please review this change that re-implements the fix for [JDK-8351921](https://bugs.openjdk.org/browse/JDK-8351921); in that fix we (think we) forgot to consider the same situation with optional regions.
I.e. the previous fix only fixed the situation occurring during initial evacuation, however as we add regions due to optional evacuation, the same situation can still happen.
So this change adds some work to every evacuation phase that marks all pinned regions in the current collection set as evacuation failed/pinned instead of only doing this work once in the pre evacuation phase.
As for testing, it is extremely hard to induce a situation where there is a pinned region with no apparent live objects in an optional collection set, so I gave up and just added the original test again.
Testing: gha, test
Thanks,
Thomas
-------------
Commit messages:
- * latest merge from master added live bytes assert again
- * re-added test after merge
- Merge branch 'master' into 8352508-pinned-regions-crash-optional-regions
- * fix merge error after factoring out backout fix
- 8351921
- 8351921
Changes: https://git.openjdk.org/jdk/pull/24147/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24147&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8352508
Stats: 139 lines in 5 files changed: 126 ins; 11 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/24147.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/24147/head:pull/24147
PR: https://git.openjdk.org/jdk/pull/24147
More information about the hotspot-gc-dev
mailing list