This discussion is archived
1 Reply Latest reply: Aug 18, 2010 9:34 AM by 843829 RSS

apache xmlbeans + jdk1.6 crashes in different kind of settings

843829 Newbie
Currently Being Moderated
I am migrating project from jdk1.5 and jdk1.6.
The project was quite stable under jdk1.5.
After migrating to jdk1.6 (without any code change), jdk1.6 always gets crashed.

The testing environment is:
1) Sun Sparc T5220
$uname -a
SunOS box1 5.10 Generic_137137-09 sun4v sparc SUNW,SPARC-Enterprise-T5220
2) JDK 1.6.0_14 (also try jdk 1.6.0_13, not different regarding the crash problem)
$java -version
java version "1.6.0_14-ea"
Java(TM) SE Runtime Environment (build 1.6.0_14-ea-b05)

After days of investigation, I am able to narrow down the cause to "apache xmlbeans + jdk1.6"

There are different kinds of crashes. Do anyone have more experience tell me what the issues could be?
What is the work around or fix?

Crash type 1:
# Problematic frame:
# J org.apache.xmlbeans.impl.values.XmlObjectBase.newCursor()Lorg/apache/xmlbeans/XmlCursor;

JVM argument:
jvm_args: -d64 -server -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -verbose:gc
(I also try other type of GC, such as -XX:+UseParNewGC -XX:+UseConcMarkSweepGC, results are same)

Core dump’s adb output:
core file = core -- program ``/data/qasmp40/java/jdk1.6.0_14/bin/sparcv9/java'' on platform SUNW,SPARC-Enterprise-T5220
SIGABRT: Abort
$C
ffffffff6f0fd2d1 libc.so.1`_lwp_kill+8(6, 0, ffffffff7ef45538, ffffffffffffffff, ffffffff7ef3a000, 0)
...
ffffffff6f0fd851 libc.so.1`call_user_handler+0x3e0(ffffffff75402a00, ffffffff75402a00, ffffffff6f0fe2f0, c, 0, 0)
ffffffff6f0fd981 libc.so.1`sigacthandler+0x54(0, ffffffff6f0fe5d0, ffffffff6f0fe2f0, ffffffff75402a00, 0, ffffffff7ef3a000)
ffffffff6f0fded1 0xffffffff784be694(fffffffeaf73da88, fffffffeb31a87f0, fffffffeb01c7308, 0, 1, 0)
....
ffffffff6f0fed31 0xffffffff78000240(ffffffff6f0ff720, ffffffff6f0ffbd0, a, ffffffff3c0441e8, ffffffff7800bc00, ffffffff6f0ff9c8)
ffffffff6f0fedf1 libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1f4(1, 100bc1fe0, ffffffff6f0ff9b8, a, ffffffff780001e0, ffffffff6f0ff6f0)
ffffffff6f0fef81 libjvm.so`__1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments_pnGThread__v_+0x130(ffffffff6f0ffbc8, ffffffff7e6f23f0, fffffffe8007bf40, 4c3f0,
ffffffff6f0ff9b8, ffffffffff6ed8d0)
ffffffff6f0ff0f1 libjvm.so`__1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v_+0x50(ffffffff6f0ffbc8, 100bc2790, 100bc2798, ffffffff7e7249e8, ffffffff7e724ed0,
100bc1fe0)
ffffffff6f0ff2e1 libjvm.so`__1cMthread_entry6FpnKJavaThread_pnGThread__v_+0xf0(fffffffe8007bf40, 100bc1fe0, 7e488, 866cdc, ffffffff7e724488, 7e400)


Crash type 2:
After I exclude xmlbeans library from compiling, JVM crashes of different reason
#Problematic frame:
# V [libjvm.so+0x734e3c]

JVM argument:
jvm_args: -d64 -server -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -XX:CompileCommand=exclude,org/apache/xmlbeans/*,* -verbose:gc

Core dump’s adb output:
adb: core file data for mapping at ffffffff7d900000 not saved: Bad address
core file = core -- program ``/data/qasmp40/java/jdk1.6.0_14/bin/sparcv9/java'' on platform SUNW,SPARC-Enterprise-T5220
SIGABRT: Abort
$C
ffffffff73efe231 libc.so.1`_lwp_kill+8(6, 0, ffffffff7ef45538, ffffffffffffffff, ffffffff7ef3a000, 0)
ffffffff73efe2e1 libc.so.1`abort+0x118(1, 1d8, ffffffff7e303250, 1ef13c, 0, 0)
ffffffff73efe3c1 libjvm.so`__1cCosFabort6Fb_v_+0x58(1, 1, 2dbc8, ffffffff7e6a6000, 3ad03c, 2d800)
ffffffff73efe471 libjvm.so`__1cHVMErrorOreport_and_die6M_v_+0xcb4(ffffffff7e708b30, 0, 1, ffffffff7e713390, ffffffff7e6d3b80, ffffffff7e56446b)
ffffffff73efe5a1 libjvm.so`JVM_handle_solaris_signal+0xa6c(b, ffffffff73eff530, ffffffff73eff250, 1a1000, 100141000, 62000)
ffffffff73efe701 libc.so.1`__sighndlr+0xc(b, ffffffff73eff530, ffffffff73eff250, ffffffff7ddf6d78, 0, a)
ffffffff73efe7b1 libc.so.1`call_user_handler+0x3e0(ffffffff7f409200, ffffffff7f409200, ffffffff73eff250, c, 0, 0)
ffffffff73efe8e1 libc.so.1`sigacthandler+0x54(0, ffffffff73eff530, ffffffff73eff250, ffffffff7f409200, 0, ffffffff7ef3a000)
ffffffff73efee31 libjvm.so`__1cSPSPromotionManagerWcopy_to_survivor_space6MpnHoopDesc_b_2_+0x8c(1003f4630, fffffffd70000738, 1, ffffffff05057408, fffffffd70568268, 0)
ffffffff73efef31 libjvm.so`__1cKPSScavengebAcopy_and_push_safe_barrier4CpnHoopDesc__6FpnSPSPromotionManager_pTA_v_+0x80(1003f4630, ffffffff20d70ae8, fffffffd70000738, 3701c8, ffffffff7e6a6000, 24e3)
ffffffff73efefe1 libjvm.so`__1cSPSPromotionManagerSdrain_stacks_depth6Mb_v_+0x544(1003f4630, 24e3, 1003f4630, 1003f46d8, 91a288, 20)
...

Crash type 3:
If I use -XX:+UseParNewGC -XX:+UseConcMarkSweepGC instead of default GC, JVM crashes of almost same reason, but different adb output:
# Problematic frame:
# V [libjvm.so+0x4b17f0]

JVM argument:
jvm_args: -d64 -server -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=256 -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:MaxTenuringThreshold=0 -XX:CMSInitiatingOccupancyFraction=60 -XX:+DisableExplicitGC
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -XX:+UseSpinning -XX:-UseBiasedLocking -XX:-CMSConcurrentMTEnabled
-XX:CompileCommand=exclude,org/apache/xmlbeans/*,* -verbose:gc

Core dump’s adb output:
adb: core file data for mapping at ffffffff7d900000 not saved: Bad address
$Ccore file = core -- program ``/data/qasmp40/java/jdk1.6.0_14/bin/sparcv9/java'' on platform SUNW,SPARC-Enterprise-T5220
SIGABRT: Abort
$C
ffffffff768fe5f1 libc.so.1`_lwp_kill+8(6, 0, ffffffff7ef45538, ffffffffffffffff, ffffffff7ef3a000, 0)
...
ffffffff768feac1 libc.so.1`__sighndlr+0xc(b, ffffffff768ff8f0, ffffffff768ff610, ffffffff7ddf6d78, 0, a)
ffffffff768feb71 libc.so.1`call_user_handler+0x3e0(ffffffff7f408a00, ffffffff7f408a00, ffffffff768ff610, c, 0, 0)
ffffffff768feca1 libc.so.1`sigacthandler+0x54(0, ffffffff768ff8f0, ffffffff768ff610, ffffffff7f408a00, 0, ffffffff7ef3a000)
ffffffff768ff1f1 libjvm.so`__1cNinstanceKlassSoop_oop_iterate_nv6MpnHoopDesc_pnZParScanWithBarrierClosure__i_+0x388(ffffffff6f968280, ffffffff6c2875f0, 10233bd60, ffffffff6f968c50, ffffffff6f968c58, 28)
ffffffff768ff2a1 libjvm.so`__1cbBParEvacuateFollowersClosureHdo_void6M_v_+0x2d8(10233bea0, ffffffff6f968270, 10013fca0, ffffffff7e6a6000, ffffffffffffffff, 3fff)
ffffffff768ff3a1 libjvm.so`__1cNParNewGenTaskEwork6Mi_v_+0x190(ffffffff74aff180, c, 100121d80, 10233bc70, 0, 100131f78)
...

Crash type 4:
If I run with default GC and 32 bit JVM, JVM crash with reason of:
# Internal Error (nmethod.cpp:1836), pid=29565, tid=41
# Error: guarantee(cont_offset != 0,"unhandled implicit exception in compiled code")

JVM argument:
jvm_args: -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -verbose:gc