[master] Integrated: Deflate monitors of dead objects before they become unreachable
Roman Kennke
rkennke at openjdk.java.net
Wed Dec 1 12:46:59 UTC 2021
On Wed, 17 Nov 2021 21:49:50 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
> I've seen occasional failures in G1, where the refinement thread tries to parse a heap region that has dead objects, and would sometimes see an object with a monitor that has already been deflated. And because deflation does not bother to restore the header of dead objects, it would reach to unknown memory and crash.
>
> The fix is to restore the header of dead objects just before they become unreachable. This can be done in the closures used by WeakProcessor::weak_oops_do(), right before the weak root will be cleared.
>
> Testing:
> - [x] tier1
> - [x] tier2
> - [x] tier3
> - [x] tier4
This pull request has now been integrated.
Changeset: 186e1bd7
Author: Roman Kennke <rkennke at openjdk.org>
URL: https://git.openjdk.java.net/lilliput/commit/186e1bd7f3d7049070a35f0f4d104dbd37f209d5
Stats: 21 lines in 4 files changed: 21 ins; 0 del; 0 mod
Deflate monitors of dead objects before they become unreachable
Reviewed-by: shade
-------------
PR: https://git.openjdk.java.net/lilliput/pull/28
More information about the lilliput-dev
mailing list