JVMTI retransformation and addition of private methods
serguei.spitsyn@oracle.com
serguei.spitsyn at ORACLE.COM
Wed Feb 21 07:45:56 UTC 2018
On 2/20/18 23:01, David Holmes wrote:
> On 21/02/2018 4:50 PM, serguei.spitsyn at oracle.com wrote:
>> Hi Karen and David,
>>
>>
>> On 2/20/18 19:52, David Holmes wrote:
>>> Hi Karen,
>>>
>>> On 21/02/2018 1:54 AM, Karen Kinnear wrote:
>>>> Folks,
>>>>
>>>> As part of the Valhalla EG discussions for JVMTI changes for
>>>> nestmates (thank you Serguei and David),
>>>> IBM brought up a request that we update the JVMTI documentation to
>>>> reflect that we allow addition
>>>> of private methods.
>>>>
>>>> Is there a reason we do not document this? I’m inviting those who
>>>> were involved at the time - please include
>>>> others if needed.
>>
>> I support documenting this in the JVMTI spec and had a plan to fix it
>> in 11.
>> However, it is not clear to me yet if we have a consensus on it.
>
> I would like to see a detailed analysis of the implications of
> allowing this. I _think_ it is safe but ...
Valid concern.
Also, I'd love to collect more details on the initial motivation to
relax the JVMTI spec.
Most likely we had no CCC/CSR filed on this change.
>>> This issue is tracked by:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8192936
>>>
>>> "RI does not follow the JVMTI RedefineClasses spec that is too
>>> strict in the definition"
>>
>> Yes, this is the one.
>> Thank you, David, for posting the link.
>>
>>
>>> As I wrote there ... It is not at all clear how JDK-6404550 morphed
>>> into "Permit the adding or deleting of private final/static methods
>>> with redefine" - nor why those changes failed to make any change to
>>> the spec itself. It is also unclear whether the add/delete is
>>> restricted to final/static methods or any private method? I can see
>>> that the intent was to only allow something that would not perturb
>>> the vtable for existing instances.
>>
>> I agree, there is a confusion somewhere.
>> Is it possible, the JDK-6404550 in JIRA is a different bug than the
>> one in the Bugtraq system?
>>
>> The JDK-6404550 in JIRA has a different synopsis:
>> https://bugs.openjdk.java.net/browse/JDK-6404550
>> Cannot implement late attach in NetBeans Profiler due to
>> missing functionality in JVMTI
>
> Digging deeper ... to fix the problem described in that bug they
> augmented JVM TI to allow private method redefinition as an alternate
> to the "native rebinding" technique that had been used previously. See
> the final comment in:
>
> https://bugs.openjdk.java.net/browse/JDK-6341303
>
> "JVMTI Spec: Need a way how to rebind Object.wait and Thread.sleep
> with late attach"
>
> which was closed as a duplicate.
Thank you for the point.
This explains it.
It seems, the bug synopsis was changed at some moment.
Thanks,
Serguei
>
> David
> -----
>
>>
>> Thanks,
>> Serguei
>>
>>
>>> --
>>> David
>>>
>>>
>>>> thanks,
>>>> Karen
>>>>
>>
More information about the serviceability-dev
mailing list