RFR 8082782: vm crash on StressRedefineWithoutBytecodeCorruption fails with assert(((Metadata*)obj)->is_, valid()) failed: obj is valid

Coleen Phillimore coleen.phillimore at oracle.com
Thu Jul 23 00:29:51 UTC 2015



On 7/22/15 8:15 PM, serguei.spitsyn at oracle.com wrote:
> Coleen,
>
> The fix looks good.
> I'm not sure the changes in the CompileQueue::get() are really needed 
> though.

There's a safepoint after we remove the task before it becomes attached 
to the compile thread in CompileTaskWrapper, when we release the 
MethodCompileQueue_lock and purge_stale_tasks() could release and 
reaquire this lock.   Unfortunately the fix is ugly for this small window.

Thank you for the code review!
Coleen
>
>
> Thanks,
> Serguei
>
>
> On 7/22/15 9:20 AM, Coleen Phillimore wrote:
>> Summary: Walk compile task for Method* to not deallocate, store 
>> methods in methodHandle while compile task is being created
>>
>> I couldn't reproduce this or write a test with the exact timing 
>> needed to get this crash, but this is what the stack trace and code 
>> inspection tells me what happened.  Reran all redefinition and 
>> internal tonga 'quick' tests on the change with no regression.
>>
>> open webrev at http://cr.openjdk.java.net/~coleenp/8082782.01/
>> bug link https://bugs.openjdk.java.net/browse/JDK-8082782
>>
>> Thanks,
>> Coleen
>



More information about the hotspot-dev mailing list