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
Mon Apr 1 21:50:32 UTC 2019
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