RFR: 8221437: assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m()) failed: Should not change after link resolution

Leonid Mesnik leonid.mesnik at oracle.com
Tue Apr 2 19:47:41 UTC 2019


Thank you for review.  I still need a second review I suppose.

Leonid

> On Apr 1, 2019, at 2:55 PM, coleen.phillimore at oracle.com wrote:
> 
> 
> Leonid,  Looks good!  Thank you for diagnosing the problem.
> 
> Coleen
> 
> On 4/1/19 5:50 PM, Leonid Mesnik wrote:
>> Hi
>> 
>> Could you please review following fix which just relax assertion in methodHandles.cpp.
>> The assertion
>> 319   assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m(), ..)
>> is to strict and fails in the case if class was redefined/retransformed and method MethodHandles::init_method_MemberName(Handle mname, CallInfo& info)
>> is called for old copy of method.
>> So this assertion is incorrect for old methods and shouldn't be checked.
>> 
>> I hit this assertion by internal stress test and verified that it is not reproduced after fix. Also run tier1 sanity testing.
>> 
>> webrev: http://cr.openjdk.java.net/~lmesnik/8221437/webrev.00/ <http://cr.openjdk.java.net/~lmesnik/8221437/webrev.00/>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8221437 <https://bugs.openjdk.java.net/browse/JDK-8221437>
>> 
>> Leonid
> 



More information about the hotspot-runtime-dev mailing list