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