eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.27k stars 721 forks source link

Segmentation Faults on Eclipse OpenJ9 VM, version 11.0.2+9 #7714

Open benjamin-confino opened 4 years ago

benjamin-confino commented 4 years ago

Java version: Eclipse OpenJ9 VM, version 11.0.2+9

Summary of problem

Segmentation errors are appearing in the liberty FAT tests.

Diagnostic files

This is a console.log file from a failing test. More diagnostic files are available at https://libfsvip.hursley.ibm.com/liberty/dev/SOE/BucketOutput/2019-11-04/com.ibm.ws.transaction_fat_java7/_wD12oPxEEemwhO4H9O23bA.zip under the path servers/com.ibm.ws.transaction-02-11-2019-02-00-45

console.log

pshipton commented 4 years ago

@keithc-ca

keithc-ca commented 4 years ago

I suspect the crash is caused by the bad object reference (0x2a00000000000000) returned by org/eclipse/osgi/internal/loader/EquinoxClassLoader.loadClass(String). We see this in the trace log:

01:39:42.948296670 *0x0000000000734600 j9vm.315            Entry      >0X734600 loader 0xe64150b2d0 class org/jboss/weld/util/collections/ImmutableSet arbitratedLoadClass enter className
01:39:42.948304569  0x0000000000734600 j9vm.119            Event       send loadClass(org/jboss/weld/util/collections/ImmutableSet), stringObject: 0xfeddb008 loader: 0x81160cd0
01:39:42.948319368  0x0000000000734600 j9vm.120            Event       sent loadClass(org/jboss/weld/util/collections/ImmutableSet) --> got 0x2a00000000000000

It's not clear how that method could return 0x2a00000000000000.

Using jdmpview, we can see the type of classloader involved:

> !j9object 0x81160cd0
!J9Object 0x0000000081160CD0 {
    struct J9Class* clazz = !j9class 0x3EBB00 // org/eclipse/osgi/internal/loader/EquinoxClassLoader

And confirm the name of the class being loaded:

> !j9object 0xfeddb008
J9VMJavaLangString at 0x00000000FEDDB008 {
    struct J9Class* clazz = !j9class 0x31100 // java/lang/String
    "org.jboss.weld.util.collections.ImmutableSet"

Can you see if this can be reproduced using -Xint so we can rule out a JIT problem?

pshipton commented 4 years ago

Pls retry with a newer version of Java 11. 11.0.5 is released already, and 11.06 will be released in Jan.