CRR: G1: assert((_g1->evacuation_failed()) || (!_g1->obj_in_cs(obj))) failed (XS)

Tony Printezis tony.printezis at
Wed May 4 19:53:15 UTC 2011

Thanks Ramki! All set.

Y. Srinivas Ramakrishna wrote:
> Looks good to me.
> -- ramki
> On 5/4/2011 11:31 AM, Tony Printezis wrote:
>> Hi all,
>> I'd like one more review for this small fix:
>> The problem was that the assert at the end of mark_forwardee() was 
>> too strong and if another thread
>> self-forwarded the object we might have hit the assert before the 
>> other thread got a chance to set
>> the evacuation failure flag. I removed the assert (as it's not 
>> straightforward to make it work in
>> the presence of this race) and I added two new asserts in the 
>> evacuation handling code to make sure
>> that the post-conditions are as expected before we get to 
>> mark_forwardee().
>> Tony

More information about the hotspot-gc-dev mailing list