Integrated: 8308881: Strong CLD oop handle roots are demoted to non-roots concurrently

Erik Österlund eosterlund at openjdk.org
Tue May 30 07:33:04 UTC 2023


On Thu, 25 May 2023 15:41:23 GMT, Erik Österlund <eosterlund at openjdk.org> wrote:

> 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.

This pull request has now been integrated.

Changeset: 78aac241
Author:    Erik Österlund <eosterlund at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/78aac241b8a3f29111e2901e8b7fbadd502a31a9
Stats:     50 lines in 2 files changed: 50 ins; 0 del; 0 mod

8308881: Strong CLD oop handle roots are demoted to non-roots concurrently

Reviewed-by: stefank, coleenp

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

PR: https://git.openjdk.org/jdk/pull/14154


More information about the hotspot-gc-dev mailing list