RFR: 8283555: G1: Concurrent mark accesses uninitialized BOT of closed archive regions

Thomas Schatzl tschatzl at openjdk.java.net
Wed Mar 23 16:04:52 UTC 2022


Hi all,

  please review this change that fixes crashes occurring in the Loom repo because of missing initialization in the BOT of closed archive regions. This is a bug here too, just typically not occurring.

So during marking through the closed archive regions (for statistics mainly) it can happen that there are objects in these closed archive regions that are split into chunks. To get the start of the object that contains this chunk, we use the BOT.

Since it is not initialized for the closed archive regions G1 crashes as that call returns garbage.

The fix is to not only initialize open archive regions, but also closed archive regions.

The problem started with [JDK-8264908](https://bugs.openjdk.java.net/browse/JDK-8264908) which means that there will be a JDK 18 backport.

Testing: failing test with Loom, GHA

Thanks,
  Thomas

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

Commit messages:
 - Initial version, initialize BOT for CA regions

Changes: https://git.openjdk.java.net/jdk/pull/7923/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7923&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8283555
  Stats: 9 lines in 1 file changed: 4 ins; 5 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7923.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7923/head:pull/7923

PR: https://git.openjdk.java.net/jdk/pull/7923



More information about the hotspot-gc-dev mailing list