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:57:23 UTC 2015
Thanks, Coleen!
Serguei
On 1/16/15 2:50 PM, Coleen Phillimore wrote:
>
> Hi Serguei,
>
> Sorry this got lost in my mailbox, twice. This change looks great!
> Thank you for re-enabling the test.
>
> Thanks,
> Coleen
>
> On 1/16/15, 5:38 PM, serguei.spitsyn at oracle.com wrote:
>> 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 hotspot-dev
mailing list