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

[PPC64] AOTAdapterCaching: SIGSEGV after 8350209

XMLWordPrintable

    • Fix Understood
    • ppc

      We see lots of crashes in runtime/cds/appcds tests after JDK-8350209:

      # SIGSEGV (0xb) at pc=0x00007fff9f7cd1c4, pid=53191, tid=53194
      #
      # JRE version: OpenJDK Runtime Environment (25.0) (fastdebug build 25-internal-adhoc.jenkinsi.jdk)
      # Java VM: OpenJDK 64-Bit Server VM (fastdebug 25-internal-adhoc.jenkinsi.jdk, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-ppc64le)
      # Problematic frame:
      # j jdk.internal.util.ArraysSupport.hashCodeOfUnsigned([BIII)I+0 java.base@25-internal

      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      j jdk.internal.util.ArraysSupport.hashCodeOfUnsigned([BIII)I+0 java.base@25-internal
      J 27 c1 java.lang.String.hashCode()I java.base@25-internal (60 bytes) @ 0x00007fff98400768 [0x00007fff98400440+0x0000000000000328]
      j java.util.concurrent.ConcurrentHashMap.compute(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;+17 java.base@25-internal

      Crash happens in interpreter method entry point (kind = zerolocals)
        0x00007fff9f7cd1b8: lbz r12,0(r14)
        0x00007fff9f7cd1bc: addi r11,r25,18432
        0x00007fff9f7cd1c0: rldicr r12,r12,3,60
        0x00007fff9f7cd1c4: ldx r11,r11,r12
      where r14=0x000003f7008320d8 is pointing into metadata.

      Caller is a C1 method
        0x00007fff98400764: bl 0x00007fff98400920 ; ImmutableOopMap {[96]=Oop }
                                                                  ;*invokestatic hashCodeOfUnsigned {reexecute=0 rethrow=0 return_oop=0}
                                                                  ; - java.lang.StringLatin1::hashCode@5 (line 191)
                                                                  ; - java.lang.String::hashCode@27 (line 2448)
                                                                  ; {static_call}

      which uses a call stub
        0x00007fff98400920: addis r11,r29,0 ; {static_stub}
        0x00007fff98400924: addi r11,r11,1024 ; {section_word}
        0x00007fff98400928: ld r19,0(r11) ; {metadata({method} {0x000003f70033cb70} 'hashCodeOfUnsigned' '([BIII)I' in 'jdk/internal/util/ArraysSupport')}
        0x00007fff9840092c: nop
        0x00007fff98400930: mr r0,r11
        0x00007fff98400934: addis r11,r29,1874
        0x00007fff98400938: addi r11,r11,-14596
        0x00007fff9840093c: mtctr r11
        0x00007fff98400940: mr r11,r0
        0x00007fff98400944: nop
        0x00007fff98400948: bctr bo=0b10100,bh=0b00[not_return_but_same]

      The problem is that some addresses are not updated via AOTCodeAddressTable.

            mdoerr Martin Doerr
            mdoerr Martin Doerr
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: