RFR (s) 8148772: VM crash in nsk/jvmti/RedefineClasses/StressRedefine: assert failed: Corrupted constant pool
Christian Thalinger
christian.thalinger at oracle.com
Fri Apr 8 21:20:51 UTC 2016
> On Apr 8, 2016, at 11:06 AM, Coleen Phillimore <coleen.phillimore at oracle.com> wrote:
>
> Summary: ConstantPool::resolve_constant_at_impl() isn't thread safe for MethodHandleInError and MethodTypeInError.
>
> Need to ignore the InError tag when fetching method_handle_index and method_type_index. The error is cached after the call to systemDictionary::link_method_handle_constant() if it's not there already.
>
> Tested with rbt equivalent of nightly runs, and StressRedefine test (reproduceable with this error) for >24 hours (also with 8151546 fixed). Ran jdk/test/java/lang/invoke tests. I can't write a test for this because it's too timing sensitive.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8148772.01/webrev
default:
+ DEBUG_ONLY( tty->print_cr("*** %p: tag at CP[%d] = %d",
+ this, index1, t1));
+ assert(false, "unexpected constant tag");
+
ShouldNotReachHere();
break;
}
Merge the print_cr and assert into a fatal and remove the ShouldNotReachHere.
> bug link https://bugs.openjdk.java.net/browse/JDK-8148772
>
> Thanks,
> Coleen
>
>
>
>
>
More information about the hotspot-dev
mailing list