Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6425560

JVM crashes on failed 'read' call: assertion in p11_general.c:277

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • 6
    • core-libs
    • None

      I was imitating "failed read" by returning -1.
      If read failure happens on 1934th invocation of read JVM fails with crashes
      with following error:

      # An unexpected error has been detected by Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0xd20fda5f, pid=1308, tid=124
      #
      # Java VM: Java HotSpot(TM) Server VM (1.6.0-beta2-b84 interpreted mode)
      # Problematic frame:
      # V [libjvm.so+0xfda5f]
      #
      # An error report file with more information is saved as hs_err_pid1308.log
      #
      # If you would like to submit a bug report, please visit:
      # http://java.sun.com/webapps/bugreport/crash.jsp
      #
      --------------- T H R E A D ---------------

      Current thread (0x08155800): JavaThread "Thread-110" [_thread_in_vm,
      id=124]

      siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000000;;
      ;; si_signo=11 SIGSEGV
      ;; si_code=1 SEGV_MAPERR /* Address not mapped to object. */

      ...


      Please see full hs_err_pid1308.log attached.


      Fastdebug jvm fails with assertion:
          Assertion failed: jInfoClass != 0,
          file ../../../../src/share/native/sun/security/pkcs11/wrapper/p11_general.c, line 277


      The stack trace is:
        [1] read(0xa, 0xf2578668, 0x2b4, 0x0, 0x3d898, 0x164000), at 0xff38062c
      =>[2] readFully(fd = ???, buf = ???, len = ???) (optimized), at 0xfd29c174
      (line ~98) in "zip_util.c"
        [3] readFullyAt(fd = ???, buf = ???, len = ???, offset = ???) (optimized), at 0xfd29c218 (line ~124) in "z
        [4] ZIP_Read(zip = ???, entry = ???, pos = ???, buf = ???, len = ???)
      (optimized), at 0xfd29d9e4 (line ~998) in "zip_util.c"
        [5] Java_java_util_zip_ZipFile_read(env = ???, cls = ???, zfile = ???,
      zentry = ???, pos = ???, bytes = ???, off = ???, len = ???) (optimized), at
      0xfd2933cc (line ~192) in "ZipFile.c"
        [6] 0xfb015a78(0x10a, 0xf257a7f4, 0xf257a760, 0xffffff78, 0xfd1a2000, 0x0), at 0xfb015a78
        [7] 0xfb015938(0x2b4, 0xb8, 0x0, 0x24, 0x1c8210, 0xf257a778), at 0xfb015938
        [8] 0xfb005908(0x2b4, 0xb8, 0x0, 0xfb02c650, 0xfe495d53, 0xf257a810), at 0xfb005908
        [9] 0xfb005908(0xf322c8c8, 0xb6, 0x0, 0xfb02c650, 0x1646ec, 0xf257a8b8), at 0xfb005908
        [10] 0xfb005908(0xf322c8f8, 0xb6, 0x0, 0xfb02be10, 0xf6c00888, 0xf257a940), at 0xfb005908
        [11] 0xfb005a30(0xf322c8f8, 0xb6, 0x0, 0xfb02bcc0, 0x3d800, 0xf257a9d0), at 0xfb005a30
        [12] 0xfb005908(0xf322c8a8, 0xb6, 0x0, 0xfb02be10, 0x10, 0xf257aa68), at 0xfb005908
        [13] 0xfb005908(0xf322c7b0, 0xb6, 0x0, 0xfb02be10, 0xf6d99648, 0xf257ab10), at 0xfb005908
        [14] 0xfb0058c0(0xf418f240, 0xb7, 0x0, 0xfb02bcc0, 0xf3238328, 0xf257abc0), at 0xfb0058c0
        [15] 0xfb0058c0(0xf322c7b0, 0xb8, 0x0, 0xfb02c180, 0x3d800, 0xf257ac40), at 0xfb0058c0
        [16] 0xfb0058c0(0x20, 0xfeeabeb4, 0x0, 0xfb02c500, 0xf257b015, 0xf257acd8), at 0xfb0058c0
        [17] 0xfb0002d0(0xf257adf0, 0xf257b040, 0xa, 0xf6d95598, 0xfb012260, 0xf257afb4), at 0xfb0002d0
        [18] JavaCalls::call_helper(0xf6d95598, 0xf257b040, 0xf6d95598, 0x164000, 0x1, 0xfb000240), at 0xfd9c849c
        [19] JVM_DoPrivileged(0x164104, 0xf257afd0, 0x1bbcc, 0x1646e0, 0x164000, 0x1646e4), at 0xfdb4872c
        [20]
      Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_A
      = ???, cls = ???, action = ???, context = ???) (optimized), at 0xfd1cacb8
      (line ~60) in "AccessController.c"
        [21] 0xfb015a78(0x109, 0xf257b534, 0xf257b4b0, 0xffffff80, 0xf6c00dd0, 0x0), at 0xfb015a78
        [22] 0xfb015938(0xf419b320, 0xb8, 0x0, 0x8, 0xf3238328, 0xf257b4c8), at 0xfb015938
        [23] 0xfb0058c0(0xf418f240, 0xb6, 0x0, 0xfb02c6b0, 0xfeed2d38, 0xf257b558), at 0xfb0058c0
        [24] 0xfb0058c0(0xf418f240, 0xb6, 0x0, 0xfb02bcc0, 0xfee69108, 0xf257b5f0), at 0xfb0058c0
        [25] 0xfb0058c0(0xf418f240, 0xb6, 0x0, 0xfb02be10, 0x3d800, 0xf257b670), at 0xfb0058c0
        [26] 0xfb0058c0(0x1f, 0xfeeabeb4, 0x0, 0xfb02bcc0, 0xf257b9b9, 0xf257b6f8), at 0xfb0058c0
        [27] 0xfb0002d0(0xf257b818, 0xf257bad8, 0xa, 0xf6c1f110, 0xfb0126c0, 0xf257b95c), at 0xfb0002d0
        [28] JavaCalls::call_helper(0xf6c1f110, 0xf257bad8, 0xf6c1f110, 0x164000, 0x1, 0xfb000240), at 0xfd9c849c
        [29] JavaCalls::call_special(0xf257bad0, 0x1646d4, 0xf257bab0, 0xf257baac, 0xf257baa8, 0x164004), at 0xfd9
        [30] SystemDictionary::load_instance_class(0xf257bcc0, 0xf257bcbc, 0xf257bcb8, 0x164000, 0xfeea6d70, 0xf25
        [31] SystemDictionary::resolve_instance_class_or_null(0x34b, 0x34b, 0xf257be90, 0xf257be8c, 0xaffd91, 0xaf
        [32] SystemDictionary::resolve_or_null(0xf257bf44, 0xf257bf40, 0xf257bf3c, 0xf257bf38, 0x164000, 0xf71c932
        [33] SystemDictionary::resolve_or_fail(0xf257bff4, 0xf257bff0, 0xf257bfec, 0xf257bfe8, 0x1, 0x164000), at
        [34] find_class_from_class_loader(0x164104, 0xf257c07c, 0x1, 0xf257bff4, 0xf257c074, 0x1), at 0xfdbcf778
        [35] jni_FindClass(0x164104, 0xfd01fb40, 0x164000, 0xf71f1b70, 0xfd95d56c, 0xfee69108), at 0xfd9ff664
        [36] ckSlotInfoPtrToJSlotInfo(env = ???, ckpSlotInfo = ???) (optimized), at 0xfd0181b8 (line ~401) in "p11
        [37] Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSlotInfo(env = ???, obj
      = ???, jSlotID = ???) (optimized), at 0xfd018164 (line ~380) in
      "p11_general.c"
        [38] 0xfb015a78(0x20000000, 0xf257c3dc, 0xf257c350, 0xffffff80, 0x0, 0x0), at 0xfb015a78
        [39] 0xfb015938(0xf3223a10, 0x8, 0x0, 0xc, 0x0, 0xf257c368), at 0xfb015938
        [40] 0xfb0058c0(0xf31ccb90, 0x8, 0x0, 0xfb02bda4, 0x0, 0xf257c438), at 0xfb0058c0
        [41] 0xfb005a30(0x1e, 0xfeeabeb4, 0x0, 0xfb02c180, 0xf257c8bd, 0xf257c4b8), at 0xfb005a30
        [42] 0xfb0002d0(0xf257c5d8, 0xf257c7d8, 0xa, 0xf71ca4b8, 0xfb012260, 0xf257c860), at 0xfb0002d0
        [43] JavaCalls::call_helper(0xf71ca4b8, 0xf257c7d8, 0xf71ca4b8, 0x164000, 0x0, 0xfb000240), at 0xfd9c849c
        [44] Reflection::invoke(0xf257cb64, 0x4, 0x164688, 0x164004, 0xfec24f60, 0x0), at 0xfe13006c
        [45] Reflection::invoke_constructor(0xf257cc84, 0x164684, 0x16467c, 0xf257cb50, 0x164000, 0xfeea6d70), at
        [46] JVM_NewInstanceFromConstructor(0x164104, 0x164000, 0xf6cd8628, 0xfeec3ea0, 0x1, 0x3dc00), at 0xfdbe1d
        [47] Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0(env =
      ???, unused = ???, c = ???, args = ???) (optimized), at 0xfd1d4e4c (line
      ~21) in "NativeAccessors.c"
        [48] 0xfb015a78(0x10a, 0xf257ce94, 0xf257ce10, 0xffffff80, 0x0, 0x0), at 0xfb015a78
        [49] 0xfb015938(0xf31c6f70, 0xb8, 0x0, 0x8, 0xf31d7188, 0xf257ce28), at 0xfb015938
        [50] 0xfb0058c0(0xf31c6f80, 0xb6, 0x0, 0xfb02c500, 0x15, 0xf257ceb8), at 0xfb0058c0
        [51] 0xfb0058c0(0xf31c6f98, 0xf6c4f9e0, 0x0, 0xfb02bcc0, 0x0, 0xf257cf38), at 0xfb0058c0
        [52] 0xfb005de0(0xf31c6f30, 0x8, 0x0, 0xfb02c880, 0x0, 0xf257cfc8), at 0xfb005de0
        [53] 0xfb0058c0(0x1d, 0xfeeabeb4, 0x0, 0xfb02be70, 0xf257d39d, 0xf257d060), at 0xfb0058c0
        [54] 0xfb0002d0(0xf257d178, 0xf257d3c8, 0xa, 0xf70abb48, 0xfb012260, 0xf257d33c), at 0xfb0002d0
        [55] JavaCalls::call_helper(0xf70abb48, 0xf257d3c8, 0xf70abb48, 0x164000, 0x1, 0xfb000240), at 0xfd9c849c
        [56] JVM_DoPrivileged(0x164104, 0xf257d358, 0x1bbcc, 0x164670, 0x164000, 0x164674), at 0xfdb4872c
        [57]
      Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2(env
      = ???, cls = ???, action = ???) (optimized), at 0xfd1cac4c (line ~27) in
      "AccessController.c"
        [58] 0xfb015a78(0x109, 0xf257d8b4, 0xf257d838, 0xffffff80, 0x0, 0x0), at 0xfb015a78
        [59] 0xfb015938(0xf30ee2e0, 0xb8, 0x0, 0x4, 0x0, 0xf257d850), at 0xfb015938
        [60] 0xfb0058c0(0xf30eca68, 0x8, 0x0, 0xfb02c180, 0x0, 0xf257d8d8), at 0xfb0058c0
        [61] 0xfb0058c0(0xf30eca68, 0x8, 0x0, 0xfb02c180, 0x0, 0xf257d970), at 0xfb0058c0
        [62] 0xfb0058c0(0xf30ec7b8, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257d9f8), at 0xfb0058c0
        [63] 0xfb0058c0(0xf30ec7b8, 0x8, 0x0, 0xfb02be10, 0x0, 0xf257da88), at 0xfb0058c0
        [64] 0xfb0058c0(0x0, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257db28), at 0xfb0058c0
        [65] 0xfb0058c0(0x0, 0x8, 0x0, 0xfb02c500, 0x0, 0xf257dbb0), at 0xfb0058c0
        [66] 0xfb0058c0(0x0, 0x8, 0x0, 0xfb02c500, 0x0, 0xf257dc40), at 0xfb0058c0
        [67] 0xfb0058c0(0x0, 0x8, 0x0, 0xfb02c6b0, 0x0, 0xf257dd08), at 0xfb0058c0
        [68] 0xfb005950(0x0, 0x8, 0x0, 0xfb02c500, 0x0, 0xf257dd88), at 0xfb005950
        [69] 0xfb005950(0x1c, 0xfeeabeb4, 0x0, 0xfb02c6b0, 0xf257e145, 0xf257de08), at 0xfb005950
        [70] 0xfb0002d0(0xf257df20, 0xf257e170, 0xa, 0xf7080148, 0xfb012260, 0xf257e0e4), at 0xfb0002d0
        [71] JavaCalls::call_helper(0xf7080148, 0xf257e170, 0xf7080148, 0x164000, 0x1, 0xfb000240), at 0xfd9c849c
        [72] JVM_DoPrivileged(0x164104, 0xf257e100, 0x1bbcc, 0x164664, 0x164000, 0x164668), at 0xfdb4872c
        [73]
      Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2(env
      = ???, cls = ???, action = ???) (optimized), at 0xfd1cac4c (line ~27) in
      "AccessController.c"
        [74] 0xfb015a78(0x109, 0xf257e660, 0xf257e5e0, 0xffffff80, 0x0, 0x0), at 0xfb015a78
        [75] 0xfb015938(0xf30e8438, 0xb8, 0x0, 0x4, 0x0, 0xf257e5f8), at 0xfb015938
        [76] 0xfb0058c0(0xf30d4318, 0x8, 0x0, 0xfb02c180, 0x0, 0xf257e680), at 0xfb0058c0
        [77] 0xfb005950(0xf30d4318, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257e710), at 0xfb005950
        [78] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257e790), at 0xfb005a30
        [79] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257e818), at 0xfb005a30
        [80] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02c2d0, 0x0, 0xf257e8a0), at 0xfb005a30
        [81] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02c2d0, 0x0, 0xf257e930), at 0xfb005a30
        [82] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02c2d0, 0x0, 0xf257e9d8), at 0xfb005a30
        [83] 0xfb005a30(0xf30d2fd8, 0x8, 0x0, 0xfb02c2d0, 0x0, 0xf257ea60), at 0xfb005a30
        [84] 0xfb005a30(0x0, 0x8, 0x0, 0xfb02bcc0, 0x0, 0xf257eae8), at 0xfb005a30
        [85] 0xfb0058c0(0x0, 0x8, 0x0, 0xfb02c500, 0x0, 0xf257eb68), at 0xfb0058c0
        [86] 0xfb0058c0(0x1d, 0xfeeabeb4, 0x0, 0xfb02c500, 0xf257f015, 0xf257ec18), at 0xfb0058c0
        [87] 0xfb0002d0(0xf257ed30, 0xf257ef30, 0xa, 0xf6ec4e28, 0xfb012260, 0xf257efb4), at 0xfb0002d0
        [88] JavaCalls::call_helper(0xf6ec4e28, 0xf257ef30, 0xf6ec4e28, 0x164000, 0x1, 0xfb000240), at 0xfd9c849c
        [89] Reflection::invoke(0xf257f39c, 0x1, 0x16465c, 0x164004, 0xfec24f60, 0x0), at 0xfe13006c
        [90] Reflection::invoke_method(0xf257f39c, 0x164650, 0xf257f394, 0xf257f390, 0x164000, 0x164648), at 0xfe1
        [91] JVM_InvokeMethod(0x164104, 0x164000, 0x164640, 0x3dc68, 0x164648, 0x164644), at 0xfdbe09fc
        [92] Java_sun_reflect_NativeMethodAccessorImpl_invoke0(env = ???, unused =
      ???, m = ???, obj = ???, args = ???) (optimized), at 0xfd1d4e30 (line ~15)
      in "NativeAccessors.c"
        [93] 0xfb015a78(0x10a, 0xf257f5cc, 0xf257f540, 0xffffff80, 0xfe495d53, 0x0), at 0xfb015a78
        [94] 0xfb015938(0xf30d0920, 0xb8, 0x0, 0xc, 0xf30dd438, 0xf257f558), at 0xfb015938
        [95] 0xfb0058c0(0xf30d0930, 0xb6, 0x0, 0xfb02c500, 0x0, 0xf257f5f0), at 0xfb0058c0
        [96] 0xfb0058c0(0xf30d0948, 0xf6c4f2d8, 0x0, 0xfb02bcc0, 0x3d865, 0xf257f670), at 0xfb0058c0
        [97] 0xfb005de0(0xf30d0320, 0xb6, 0x0, 0xfb02c880, 0x19a780, 0xf257f700), at 0xfb005de0
        [98] 0xfb0058c0(0xf41ff468, 0xb6, 0x0, 0xfb02bcc0, 0xf30dd438, 0xf257f788), at 0xfb0058c0
        [99] 0xfb0058c0(0xf41ff468, 0xf6dca490, 0x0, 0xfb02bcc0, 0xf6dca490, 0xf257f820), at 0xfb0058c0
        [100] 0xfb005de0(0x1c, 0xfeeabeb4, 0x0, 0xfb02c880, 0xf257fc09, 0xf257f8d8), at 0xfb005de0

      Looking at the code in p11_general.c:
         267 jobject ckInfoPtrToJInfo(JNIEnv *env, const CK_INFO_PTR ckpInfo)
         268 {
         269 jclass jInfoClass;
         270 jobject jInfoObject;
         271 jcharArray jTempCharArray;
         272 jfieldID jFieldID;
         273 jobject jTempVersion;
         274
         275 /* load CK_INFO class */
         276 jInfoClass = (*env)->FindClass(env, CLASS_INFO);
         277 assert(jInfoClass != 0);
         278 /* create new CK_INFO object */
         279 jInfoObject = (*env)->AllocObject(env, jInfoClass);
         280 assert(jInfoObject != 0);
         281

      looks like the error is ignored in product version.

      Looking at the j2se_1.6.0/src/share/native/java/util/zip/ZipFile.c:
         199 if (len == -1) {
         200 if (msg != 0) {
         201 ThrowZipException(env, msg);
         202 } else {
         ...

      it looks like the exception is thrown but is not properly handled later.

      To reproduce the failure:
      1. login on solaris machine
      2. cp -fr /home/ep155969/work/FaultInjection/read_2 YOUR_LOCAL_DIR
      3. cd YOUR_LOCAL_DIR
      4. make
      5. bash inject_faults.sh JAVA_PATH 1934 1934

      The failure results will be stored in ./results dir.
      The similar failures:

      Assertion failed: jVersionClass != 0, file
      ../../../../src/share/native/sun/security/pkcs11/wrapper/p11_convert.c, line 135
      INJECT_FAULT_AT=1936
      INJECT_FAULT_AT=1937

      Assertion failed: jSlotInfoClass != 0, file
      ../../../../src/share/native/sun/security/pkcs11/wrapper/p11_general.c, line 402
      INJECT_FAULT_AT=1938
      INJECT_FAULT_AT=1939

      Assertion failed: jTokenInfoClass != 0, file
      ../../../../src/share/native/sun/security/pkcs11/wrapper/p11_general.c, line 488
      INJECT_FAULT_AT=1957
      INJECT_FAULT_AT=1958

            coffeys Sean Coffey
            epavlova Ekaterina Pavlova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: