JDK-8024626 : CTW CRASH: SIGSEGV in ctw/jre/lib/rt_jar/preloading_1 and ctw/jre/lib/rt_jar/sun_awt_X11_ListHelper
Type:Bug
Component:client-libs
Sub-Component:java.awt
Affected Version:hs25,8,9
Priority:P3
Status:Resolved
Resolution:Fixed
Submitted:2013-09-06
Updated:2015-06-04
Resolved:2014-12-03
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
These two tests fail:
ctw/jre/lib/rt_jar/preloading_1
ctw/jre/lib/rt_jar/sun_awt_X11_ListHelper
The stack trace looks simliar for both.
Comments
moved from New to Open as an issue from 8_prior_GA (not 8u40)
01-12-2014
Sergey Bylokhov, I reproduced bug on SunOS sparcv9 with latest jdk
> ./solaris-sparcv9/bin/java -version
Java(TM) SE Runtime Environment (build 1.9.0-ea-fastdebug-b40)
Java HotSpot(TM) 64-Bit Server VM (build 1.9.0-ea-fastdebug-b40, mixed mode)
> ./solaris-sparcv9/bin/java -ea -esa -XX:+UnlockDiagnosticVMOptions -XX:+ShowMessageBoxOnError -Xverify:all -XX:+WhiteBoxAPI -XX:+CompileTheWorld -XX:LogFile=hotspot_all.log -Xbootclasspath/p:./solaris-sparcv9/jre/lib/rt.jar
According to history this bug occurs only on Solaris.
18-11-2014
Can anyone from SQE help to reproduce this issue? The only thing I can suggest is to use one of the machines it happens on in our nightly testing.
18-11-2014
I cannot reproduce the problem locally. From the stack trace above I see that during MotifDnDConstants initialization the display is 0, it is strange since this class depends from XAtom->XToolkit, and XToolkit class initialize display to non zero value in the headfull environment. If this is a headless environment this class should not be initialized/loaded, in this case we should fail fast. Also we should fail fast if there is some circular dependency, because the correct order of initialization should start from the XToolkit class, this is why a usual client applications are not affected.
Command line used:
./build/linux-x86_64-normal-server-fastdebug/images/j2sdk-image/bin/java -ea -esa -XX:+UnlockDiagnosticVMOptions -XX:+ShowMessageBoxOnError -Xverify:all -XX:+WhiteBoxAPI -XX:+CompileTheWorld -XX:LogFile=hotspot_all.log -Xbootclasspath/p:./build/linux-x86_64-normal-server-fastdebug/images/j2sdk-image/jre/lib/rt.jar
Suggested fix:
http://cr.openjdk.java.net/~serb/8024626/webrev.00
But I need a proper steps to reproduce the problem to verify the fix.
17-11-2014
Morris Meyer added a comment - 2014-02-26 12:37
This is not a compiler issue per-se. This SEGV happens because the CTW test individually compiles each class (including the static initializer). The underlying X11 classes need to protect from an out-of-order initialization where XDisplay might be NULL.
11-11-2014
11/11/14 : The issue is on the radar now to re-evaluate
11-11-2014
Are we ever going to fix this one?!?
30-09-2014
Where are we with this one? [~serb], are you working on this?
22-05-2014
This is not a compiler issue per-se. This SEGV happens because the CTW test individually compiles each class (including the static initializer). The underlying X11 classes need to protect from an out-of-order initialization where XDisplay might be NULL.
26-02-2014
You have approval to defer the following issues. Please update.
Cheers,
B.
07-10-2013
jdk8: SQE OK to defer as it seems to be a bug just in harness code.
30-09-2013
I hope to get this into JDK8. It is not related to the 7196866 fix.
23-09-2013
is it a jdk8 scope? what is expected due date? Morris?
23-09-2013
Sorry about that. Yes, Morris need to look why his 7196866 fix does not work.
11-09-2013
reproduced on jdk8-b106, so it's defently not a SQE problem. moved to client-libs/java.awt
$ ./bin/java -version
java version "1.8.0-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.8.0-ea-fastdebug-b106)
Java HotSpot(TM) Server VM (build 25.0-b48-fastdebug, mixed mode)
11-09-2013
Testing problem.
10-09-2013
It is duplicate 7196866 which Morris should have been fixed in jdk8b102.
10-09-2013
Reassigned to compiler team according to Christian's comments above.
09-09-2013
This is an old bug. Vladimir K. knows more about it.
06-09-2013
Stack traces:
Stack: [0xfffffd7ffbb7f000,0xfffffd7ffbc7f000], sp=0xfffffd7ffbc7d030, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libX11.so.4+0x532b3] XInternAtom+0x23;; XInternAtom+0x23
C [libawt_xawt.so+0x39a3d] Java_sun_awt_X11_XlibWrapper_InternAtom+0x51;; Java_sun_awt_X11_XlibWrapper_InternAtom+0x51
j sun.awt.X11.XlibWrapper.InternAtom(JLjava/lang/String;I)J+0
j sun.awt.X11.XAtom.<init>(JLjava/lang/String;Z)V+31
j sun.awt.X11.XAtom.<init>(JLjava/lang/String;)V+4
j sun.awt.X11.XAtom.get(Ljava/lang/String;)Lsun/awt/X11/XAtom;+17
j sun.awt.X11.MotifDnDConstants.<clinit>()V+24
v ~StubRoutines::call_stub
V [libjvm.so+0x1646ef7] void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x14b3;; __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x14b3
V [libjvm.so+0x1645a03] void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x3f;; __1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x3f
V [libjvm.so+0x13a3c71] void InstanceKlass::call_class_initializer_impl(instanceKlassHandle,Thread*)+0x51d;; __1cNInstanceKlassbBcall_class_initializer_impl6FnTinstanceKlassHandle_pnGThread__v_+0x51d
V [libjvm.so+0x139a59c] void InstanceKlass::initialize_impl(instanceKlassHandle,Thread*)+0xb7c;; __1cNInstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_+0xb7c
V [libjvm.so+0x1397925] void InstanceKlass::initialize(Thread*)+0x85;; __1cNInstanceKlassKinitialize6MpnGThread__v_+0x85
V [libjvm.so+0xf58c38] void ConstantPool::preload_and_initialize_all_classes(ConstantPool*,Thread*)+0x8b8;; __1cMConstantPoolbIpreload_and_initialize_all_classes6Fp0pnGThread__v_+0x8b8
V [libjvm.so+0xd7dba7] void ClassLoader::compile_the_world_in(char*,Handle,Thread*)+0x1ab;; __1cLClassLoaderUcompile_the_world_in6FpcnGHandle_pnGThread__v_+0x1ab
V [libjvm.so+0xd7b767] void ClassPathZipEntry::compile_the_world(Handle,Thread*)+0x153;; __1cRClassPathZipEntryRcompile_the_world6MnGHandle_pnGThread__v_+0x153
V [libjvm.so+0xd7c51d] void LazyClassPathEntry::compile_the_world(Handle,Thread*)+0x899;; __1cSLazyClassPathEntryRcompile_the_world6MnGHandle_pnGThread__v_+0x899
V [libjvm.so+0xd7d5d5] void ClassLoader::compile_the_world()+0xfd;; __1cLClassLoaderRcompile_the_world6F_v_+0xfd
V [libjvm.so+0x187bab0] JNI_CreateJavaVM+0x238;; JNI_CreateJavaVM+0x238
C [libjli.so+0x9ef1] InitializeJVM+0x109;; InitializeJVM+0x109
C [libjli.so+0x7d98] JavaMain+0x5c;; JavaMain+0x5c
C [libc.so.1+0xdd60b] _thr_setup+0x5b;; _thr_setup+0x5b
C [libc.so.1+0xdd840] ht_pause+0x10;; _lwp_start+0x0
Stack: [0xfffffd7ffbb7f000,0xfffffd7ffbc7f000], sp=0xfffffd7ffbc7d030, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libX11.so.4+0x532b3] XInternAtom+0x23;; XInternAtom+0x23
C [libawt_xawt.so+0x39a3d] Java_sun_awt_X11_XlibWrapper_InternAtom+0x51;; Java_sun_awt_X11_XlibWrapper_InternAtom+0x51
j sun.awt.X11.XlibWrapper.InternAtom(JLjava/lang/String;I)J+0
j sun.awt.X11.XAtom.<init>(JLjava/lang/String;Z)V+31
j sun.awt.X11.XAtom.<init>(JLjava/lang/String;)V+4
j sun.awt.X11.XAtom.get(Ljava/lang/String;)Lsun/awt/X11/XAtom;+17
j sun.awt.X11.MotifDnDConstants.<clinit>()V+24
v ~StubRoutines::call_stub
V [libjvm.so+0x1646ef7] void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x14b3;; __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x14b3
V [libjvm.so+0x1645a03] void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x3f;; __1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x3f
V [libjvm.so+0x13a3c71] void InstanceKlass::call_class_initializer_impl(instanceKlassHandle,Thread*)+0x51d;; __1cNInstanceKlassbBcall_class_initializer_impl6FnTinstanceKlassHandle_pnGThread__v_+0x51d
V [libjvm.so+0x139a59c] void InstanceKlass::initialize_impl(instanceKlassHandle,Thread*)+0xb7c;; __1cNInstanceKlassPinitialize_impl6FnTinstanceKlassHandle_pnGThread__v_+0xb7c
V [libjvm.so+0x1397925] void InstanceKlass::initialize(Thread*)+0x85;; __1cNInstanceKlassKinitialize6MpnGThread__v_+0x85
V [libjvm.so+0xf58c38] void ConstantPool::preload_and_initialize_all_classes(ConstantPool*,Thread*)+0x8b8;; __1cMConstantPoolbIpreload_and_initialize_all_classes6Fp0pnGThread__v_+0x8b8
V [libjvm.so+0xd7dba7] void ClassLoader::compile_the_world_in(char*,Handle,Thread*)+0x1ab;; __1cLClassLoaderUcompile_the_world_in6FpcnGHandle_pnGThread__v_+0x1ab
V [libjvm.so+0xd7b767] void ClassPathZipEntry::compile_the_world(Handle,Thread*)+0x153;; __1cRClassPathZipEntryRcompile_the_world6MnGHandle_pnGThread__v_+0x153
V [libjvm.so+0xd7c51d] void LazyClassPathEntry::compile_the_world(Handle,Thread*)+0x899;; __1cSLazyClassPathEntryRcompile_the_world6MnGHandle_pnGThread__v_+0x899
V [libjvm.so+0xd7d5d5] void ClassLoader::compile_the_world()+0xfd;; __1cLClassLoaderRcompile_the_world6F_v_+0xfd
V [libjvm.so+0x187bab0] JNI_CreateJavaVM+0x238;; JNI_CreateJavaVM+0x238
C [libjli.so+0x9ef1] InitializeJVM+0x109;; InitializeJVM+0x109
C [libjli.so+0x7d98] JavaMain+0x5c;; JavaMain+0x5c
C [libc.so.1+0xdd60b] _thr_setup+0x5b;; _thr_setup+0x5b
C [libc.so.1+0xdd840] ht_pause+0x10;; _lwp_start+0x0