RFR: 8069034: gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java nightly failure

Stefan Johansson stefan.johansson at oracle.com
Mon Feb 2 13:28:25 UTC 2015

Hi Thomas,

On 2015-02-02 11:15, Thomas Schatzl wrote:
> Hi all,
> On Thu, 2015-01-29 at 12:55 +0100, Stefan Johansson wrote:
>> Hi,
>> Please review this fix for:
>> https://bugs.openjdk.java.net/browse/JDK-8069034
>> Webrev:
>> http://cr.openjdk.java.net/~sjohanss/8069034/hotspot.00/
>> Summary:
>> While looking for humongous objects to reclaim we unconditionally
>> dirtied cards, some of those might belong to freed regions and if so the
>> card table verification will fail. The simple fix is to avoid this by
>> checking that the card belong to live regions before dirtying. A more
>> robust fix would be to have the iterator avoid returning invalid cards,
>> but that is a bigger change and I will file an RFE for this.
> I would prefer if the comment were more detailed in why this check is
> required, e.g. something like "The remembered set might contain
> references to already freed region. Filter them out to to avoid failing
> assertions." or so.

I changed it to:
// The remembered set might contain references to already freed
// regions. Filter out such entries to avoid failing card table
// verification.

New webrev:

> Also, just in case somebody is interested why this only fails now: there
> has always been the possibility of remembered sets containing references
> to regions that have been freed. Until JDK-8048179 no code used the
> remembered sets to mark the card table - we only spend time to scan
> through such regions at this time, which seems day one behavior.
> Btw, the RFE number filed by Stefan is
> https://bugs.openjdk.java.net/browse/JDK-8071913
> There I added a pointer to this change to remove this change as soon as
> any more involved change has been implemented.
Thanks for updating the RFE with more information,

> Looks okay otherwise.
> Thanks,
>    Thomas

More information about the hotspot-gc-dev mailing list