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 22:38:33 UTC 2015
Just wanted to tell that Dan is the second reviewer,
so there is no pressure on others to review this. :)
Thanks, Dan!
Serguei
On 1/16/15 11:16 AM, serguei.spitsyn at oracle.com wrote:
> 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