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

Thomas Schatzl thomas.schatzl at oracle.com
Mon Feb 2 10:15:07 UTC 2015


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.

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.

Looks okay otherwise.

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list