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

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Thu Jul 23 00:35:17 UTC 2015

On 7/22/15 5:29 PM, Coleen Phillimore wrote:
> 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 extra explanation!


> 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