RFR 8082782: vm crash on StressRedefineWithoutBytecodeCorruption fails with assert(((Metadata*)obj)->is_, valid()) failed: obj is valid
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:
> The fix looks good.
> I'm not sure the changes in the CompileQueue::get() are really needed
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!
> 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
More information about the hotspot-dev