RFR: Fix assertion failure due to race while pre-evacuating Jvmti roots

Zhengyu Gu zgu at redhat.com
Thu Nov 1 16:07:47 UTC 2018



On 11/01/2018 12:04 PM, Aleksey Shipilev wrote:
> On 11/01/2018 05:01 PM, Zhengyu Gu wrote:
>> After pushing pre-evacuation of Jvmti roots, further tests revealed that early/other pre-evacuation
>> tasks may race to evacuate oops in Jvmti roots, that resulted assertion failure
>> (shenandoah_assert_not_forwarded) in ShenandoahIsAliveClosure, use ShenandoahForwardedIsAliveClosure
>> instead.
>>
>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/pre_evac_jvmti_fix/webrev.00/
> 
> OK. That root must be visited through some other way, right? Because try_claim_task should have
> arbitrated the pre-evacuation between threads?

Yes. I suspect some oops in Jvmti roots are evacuated when evacuating 
thread or code roots.

-Zhengyu
> 
> -Aleksey
> 


More information about the shenandoah-dev mailing list