[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Integrated: 8253081: G1 fails on stale objects in archived module graph in Open Archive regions
From:       Thomas Schatzl <tschatzl () openjdk ! java ! net>
Date:       2020-11-18 8:24:04
Message-ID: WuKmSilrGp63nMbejNLe4RJa4_5JTUng2PB-ioutrlg=.50e14f23-e576-4583-a50b-f5ee2abbf5f4 () github ! com
[Download RAW message or body]

On Wed, 11 Nov 2020 11:39:59 GMT, Thomas Schatzl <tschatzl@openjdk.org> wrote:

> Hi all,
> 
> can I have reviews for this change that changes the way how archive regions are \
> managed in general and specifically by the G1 collector, fixing the crashes caused \
> by adding the module graph into the archive in \
> [JDK-8244778](https://bugs.openjdk.java.net/browse/JDK-8244778)? 
> Previously before the JDK-8244778 change, archived objects could always be assumed \
> as live, and so the G1 collector did so, not caring about the archive region's \
> contents at all. With JDK-8244778 however, archived objects could die, and keep \
> stale references to objects outside of the archive regions, which obviously causes \
> crashes when walking these objects. 
> With this change, open archive region contents are basically handled as any other \
> objects; to support that, all open archive regions are now reachable via a single \
> object array root. This hopefully also facilitates implementation in other \
> collectors. 
> This allows us to remove quite a bit of special handling in G1 too; the only \
> difference is that open archive regions will generally not be collected unless they \
> are completely empty: we do want to profit from the sharing across VMs as much as \
> possible. 
> Testing: tier1-5, one or two 6-8 runs
> 
> The appcds changes were done by @iklam. These changes are described in this \
> document: https://wiki.openjdk.java.net/display/HotSpot/CDS+Archived+Heap+Improvements
>  
> Thanks,
> Thomas

This pull request has now been integrated.

Changeset: d3095605
Author:    Thomas Schatzl <tschatzl@openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/d3095605
Stats:     694 lines in 32 files changed: 464 ins; 110 del; 120 mod

8253081: G1 fails on stale objects in archived module graph in Open Archive regions

Change the handling of Open Archive areas, instead of assuming that everything in \
there is live always, a root containing references to all live root objects is \
provided. Adapt G1 to handle Open Archive regions as any other old region apart from \
never compacting or evacuating them.

Co-authored-by: Ioi Lam <iklam@openjdk.org>
Reviewed-by: kbarrett, sjohanss, redestad

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

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic