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