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