1 Reply Latest reply: Aug 18, 2010 11:34 AM by 843829 RSS

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

    843829
      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