IV19701: USING SHARED CLASS WITH RE-TRANSFORMATION CAPABLE JVMTI AGENTS C AN RESULT IN SEGMENTATION FAULT OR JAVA.LANG.CLASSFORMATERROR
Closed as program error.
Error Message: Segmentation Fault in libj9dyn26.so or java.lang.ClassFormatError exception . Stack Trace: j9bcutil_readClassFileBytes () from jre/lib/ppc/default/libj9dyn26.so lassFileParser::parseClassFile () from jre/lib/ppc/default/libj9dyn26.so ROMClassBuilder::buildROMClass () from jre/lib/ppc/default/libj9dyn26.so j9bcutil_buildRomClass () from jre/lib/ppc/default/libj9dyn26.so callDynamicLoader () from jre/lib/ppc/default/libj9dyn26.so internalLoadROMClass () from jre/lib/ppc/default/libj9dyn26.so reloadROMClasses () from jre/lib/ppc/default/libj9jvmti26.so redefineClassesCommon () from jre/lib/ppc/default/libj9jvmti26.so jvmtiRetransformClasses () from jre/lib/ppc/default/libj9jvmti26.so retransformClasses () from jre/lib/ppc/libinstrument.so Java_sun_instrument_InstrumentationImpl_retransformClasses0 () from jre/lib/ppc/libinstrument.so .
This problem can be prevented by disabling the shared class cache using -Xshareclasses:none. It can also be worked around by removing the re-transformation capable JVMTI agent.
Problem is seen when the same shared class cache is used by multiple JVMs. In certain situations a JVM may store a re-transformed class in the shared cache such that one of the pointers in the class refers to the JVM's private memory. When another JVM tries to access this pointer, it may suffer a java.lang.ClassFormatError or a segmentation fault if that memory is not mapped in its address space.
This defect will be fixed in: 7.0.0 SR1 6.0.1 SR2 . The JVM has been updated to prevent the pointer in the shared cache class from referring to memory outside the cache.
Reported component name
J9 COMMON CODE
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
J9 COMMON CODE
Fixed component ID
Applicable component levels