RFR: Fix assertion failure due to race while pre-evacuating Jvmti roots
Aleksey Shipilev
shade at redhat.com
Thu Nov 1 16:09:17 UTC 2018
On 11/01/2018 05:07 PM, Zhengyu Gu wrote:
> 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.
Okay.
-Aleksey
More information about the shenandoah-dev
mailing list