-
Bug
-
Resolution: Unresolved
-
P3
-
25
-
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.
# 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.
- caused by
-
JDK-8350209 Preserve adapters in AOT cache
-
- Resolved
-