RFR: 8308881: Strong CLD oop handle roots are demoted to non-roots concurrently
Erik Österlund
eosterlund at openjdk.org
Thu May 25 15:49:03 UTC 2023
It is illegal to remove strong roots concurrently without clearing them first. A SATB collector with concurrent root scanning assumes that when strong roots disappear from the object graph, they are cleared first, which makes SATB notice the root. All global strong roots do this. Except CLD strong roots, which are turned into non-roots by decrementing the keep_alive counter to 0, when bootstrapping weak hidden class CLDs. This is not valid behaviour. This patch tries to treat these oops like we do any other global strong handles that are unlinked from the system: clear them when they stop being strong roots.
-------------
Commit messages:
- 8308881: Strong CLD oop handle roots are demoted to non-roots concurrently
Changes: https://git.openjdk.org/jdk/pull/14154/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14154&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8308881
Stats: 34 lines in 2 files changed: 34 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/14154.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14154/head:pull/14154
PR: https://git.openjdk.org/jdk/pull/14154
More information about the hotspot-runtime-dev
mailing list