RFR: 8149743: JVM crash after debugger hotswap with lambdas

Daniel D. Daugherty daniel.daugherty at oracle.com
Tue Feb 23 15:43:23 UTC 2016


On 2/23/16 8:34 AM, Andreas Eriksson wrote:
>
> On 2016-02-23 15:11, Daniel D. Daugherty wrote:
>> On 2/18/16 9:11 AM, Andreas Eriksson wrote:
>>> Hi,
>>>
>>> Please review this fix for JDK-8149743: JVM crash after debugger 
>>> hotswap with lambdas
>>> https://bugs.openjdk.java.net/browse/JDK-8149743
>>>
>>> Webrev: http://cr.openjdk.java.net/~aeriksso/8149743/webrev.00/
>>
>> hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp
>>     No comments other than please update the copyright before you push.
>>
>
> Will do.

Coleen has a commit script that automatically makes sure that
the copyrights are updated... She's sent it out before...


>
>>
>> jdk/test/com/sun/jdi/RedefineAddPrivateMethod.sh
>>     L76: debuggeeFailIfPresent "Internal exception:"
>>
>>     Is the failure mode for this bug always a crash? If so, then
>>     the above check should work as long as we don't change the
>>     "Internal exception:" part of the output. If we do that then
>>     we'll have to update a number of tests... :-)
>>
>
> Yes, it's always a crash/assert. The runit call checks for some common 
> hs_err output as well, so even if that specific output changes it 
> should still work.

I had forgotten about that part of TestScaffold. I guess it has
been too long since I wrote/debugged one of these tests. Sigh...


>
>>
>> Thumbs up.
>>
>> Dan
>
> Thanks for the review.

No problem.

Dan

P.S.
I know there are plans to update/replace this scaffold stuff
with Java code... any idea on when that might happen? There's
some tricky stuff in there that dates back to Jim Holmlund
(and me)... Serguei will also likely remember some of the
dark twisty passages...


>
> - Andreas
>
>>
>>
>>>
>>> When redefining a class to add or delete methods an array that's 
>>> tracking method ordering is not updated correctly.
>>> This change swaps the method ordering array between the old class 
>>> being redefined and the scratch class it is being redefined into at 
>>> the same point where we swap the methods and constant pool between 
>>> them.
>>>
>>> Regards,
>>> Andreas
>>>
>>
>



More information about the hotspot-runtime-dev mailing list