RFR: 8221437: assert(java_lang_invoke_ResolvedMethodName::vmtarget(resolved_method()) == m()) failed: Should not change after link resolution
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Wed Apr 3 00:07:03 UTC 2019
Hi Leonid,
+1 Looks good.
Nice catch!
Thank you for taking care about this problem.
Thanks,
Serguei
On 4/2/19 12:47 PM, Leonid Mesnik wrote:
> 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