RFR (XS): Post-merge failure with -XX:+VerifyStrictOopOperations

Aleksey Shipilev shade at redhat.com
Tue Feb 14 07:56:36 UTC 2017


jcstress fails at:

V  [libjvm.so+0x11c4213]  Modules::define_module(_jobject*, _jstring*,
_jstring*, char const* const*, int, Thread*)+0xc03

...because there is a naked != oop comparison here:

$ hg diff
diff -r f1f3863f4646 src/share/vm/classfile/modules.cpp
--- a/src/share/vm/classfile/modules.cpp	Mon Feb 13 16:52:53 2017 -0500
+++ b/src/share/vm/classfile/modules.cpp	Tue Feb 14 08:54:55 2017 +0100
@@ -305,7 +305,7 @@

   oop loader = java_lang_reflect_Module::loader(module_handle());
   // Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader.
-  if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) {
+  if (!oopDesc::unsafe_equals(loader,
java_lang_ClassLoader::non_reflection_class_loader(loader))) {
     THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
               "Class loader is an invalid delegating class loader");
   }


Ok to push this?

-Aleksey



More information about the shenandoah-dev mailing list