RFR(S): 8192936: RI does not follow the JVMTI RedefineClasses spec that is too strict in the definition

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Mon Apr 22 15:08:28 UTC 2019



On 4/20/19 4:47 PM, serguei.spitsyn at oracle.com wrote:
>
> On 4/20/19 11:29, Daniel D. Daugherty wrote:
>> On 4/16/19 5:40 AM, serguei.spitsyn at oracle.com wrote:
>>> Please, review the fix of:
>>> https://bugs.openjdk.java.net/browse/JDK-8192936
>>>
>>>
>>> Webrev (fix from Coleen):
>>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2019/8192936-redef-add-delete.1/ 
>>>
>>
>> src/hotspot/share/prims/jvmtiRedefineClasses.cpp
>>     No comments.
>>
>> src/hotspot/share/runtime/arguments.cpp
>>     No comments.
>>
>> src/hotspot/share/runtime/globals.hpp
>>     No comments.
>>
>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineAddLambdaExpression.java 
>>
>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java 
>>
>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineSubtractLambdaExpression.java 
>>
>>     No comments.
>>
>> test/jdk/com/sun/jdi/RedefineAddPrivateMethod.java
>>     No comments.
>>
>> test/jdk/com/sun/jdi/lib/jdb/Debuggee.java
>>     No comments.
>>
>> test/jdk/com/sun/jdi/lib/jdb/JdbTest.java
>>     No comments.
>>
>> test/jdk/java/lang/instrument/RedefineAddDeleteMethod/DeleteMethodHandle/MethodHandleDeletedMethod.java 
>>
>> test/jdk/java/lang/instrument/RedefineMethodAddInvoke.sh
>> test/jdk/java/lang/instrument/RedefineMethodDelInvoke.sh
>> test/jdk/java/lang/instrument/RedefineMethodInBacktrace.sh
>>     No comments.
>>
>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/TestAddDeleteMethods.java 
>>
>>     I like the new test! It gives me hope about converting
>>     the old shell tests into java tests.

Thank you for reviewing the test.  I'm glad you liked it.

>>
>> Thumbs up!
>
> Thank you a lot for the review, Dan!
>
>>
>> Update: I see the fix was already pushed. Sorry I didn't get
>> to this review in time.
>
> No worry.
> It is is nice to get your thumbs up anyway!
>
> Also, I want to say that I extremely appreciate the help from number 
> of HotSpot engineers:
> Coleen, David H. (especially, Coleen and David!), Karen, Alan, Mandy, 
> Dan and V. Ivanov!
> We had several rounds of discussions on this issue.
> It is on our plans to make this analysis publicly available.

We should add the internal pages to the openjdk wiki here.

https://wiki.openjdk.java.net/display/HotSpot/Serviceability

Coleen

>
> Thanks!
> Serguei
>
>>
>> Dan
>>
>>>
>>> I've already reviewed and updated the webrev with my suggestions.
>>>
>>>
>>> Reviewed and approved CSR:
>>> https://bugs.openjdk.java.net/browse/JDK-8221528
>>>
>>>
>>> Summary:
>>>   The fix introduces new VM option 
>>> -XX:AllowRedefinitionToAddOrDeleteMethods
>>>   for compatibility with previous releases. New option enables old 
>>> behavior
>>>   and allows the JVM TI RedefineClasses and RetransformClasses to 
>>> add/delete
>>>   private static and private final instance methods in the new class 
>>> versions.
>>>   Without this option the old behavior is disabled.
>>>
>>>   New option is deprecated right away.
>>>   The plan is to keep this option for several releases to allow 
>>> customers
>>>   (tool vendors) to remove dependency on old behavior from their tools.
>>>
>>>
>>> Testing:
>>>   Added new test to verify that class redefinitions which add or 
>>> delete methods
>>>   return expected JVMTI error codes:
>>> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/TestAddDeleteMethods.java 
>>>
>>>
>>>   Several jvmti, com/sun/jdi and java/lang/instrument tests which 
>>> need old behavior are updated to use new flag.
>>>
>>>   Run locally on Linux-x64 the following test suites in release and 
>>> fastdebug mode:
>>>     - open/test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/
>>>     - vmTestbase_nsk_jvmti
>>>     - vmTestbase_nsk_jdi
>>>     - vmTestbase_nsk_jdb
>>>     - vmTestbase_nsk_jdwp
>>>     - jdk_jdi
>>>     - jdk_instrument
>>>
>>>   Submission of corresponding mach5 jobs is in progress.
>>>
>>> Thanks,
>>> Serguei
>>>
>>
>



More information about the serviceability-dev mailing list