4-th round RFR (XS) 8068162: jvmtiRedefineClasses.cpp: guarantee(false) failed: OLD and/or OBSOLETE method(s) found

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Fri Jan 16 19:16:34 UTC 2015


Sorry for the re-post.
Forgot to add review candidates to the to-list.

Thanks,
Serguei

On 1/16/15 11:14 AM, serguei.spitsyn at oracle.com wrote:
> Dan, David H. or David C.,
>
> May I ask one of you to look at the webrev below?
> The issue itself is a little bit tricky, so it is not easy to review 
> despite the small size.
>
> Coleen,
>
> Does the webrev matches what we discussed with you?
> Do you give me a thumbs up?
>
> Thanks,
> Serguei
>
> May I ask
>
> On 1/13/15 9:47 PM, serguei.spitsyn at oracle.com wrote:
>> Please, review the fix for:
>>   https://bugs.openjdk.java.net/browse/JDK-8068162
>>
>>
>> Open webrevs:
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2015/hotspot/8068162-JVMTI-old.4/ 
>>
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2015/jdk/8068162-Test-IsModifiableAgent/ 
>>
>>
>>
>> Summary:
>>
>>    The sun.misc.Unsafe:throwIllegalAccessError() method is used in 
>> place of a default
>>    interface method in the itable if a default method was not defined 
>> in the interface.
>>    In fact, it happens for two interfaces that purhaps are 
>> auto-generated:
>>      java/nio/CharBuffer
>>      java/nio/HeapCharBuffer
>>
>>    This approach creates a problem when the class sun.misc.Unsafe is 
>> retransformed.
>>    The Method* pointer to the old (redefined) method in the itable 
>> triggers an assert
>>    (see the hs_err log in the bug report).
>>    Coleen told me that a similar approach is going to be implemented 
>> for some vtable entries.
>>    Coleen, thanks for suggesting a better fix for this issue!
>>
>>    The fix is to replace the old Unsafe method in the itable/vtable 
>> with the latest method version.
>>
>>
>> Testing:
>>   In progress: nsk.jdi.testlist, JTREG java/lang/instrument tests
>>
>>
>> Thanks,
>> Serguei
>>
>



More information about the serviceability-dev mailing list