Closed
Description
Java -version output
openjdk version "1.8.0_342-internal"
OpenJDK Runtime Environment (build 1.8.0_342-internal-_2022_06_10_15_18-b00)
Eclipse OpenJ9 VM (build master-3d06b2f9c, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20220610_000000 (JIT enabled, AOT enabled)
OpenJ9 - 3d06b2f9c
OMR - cf8ddbd1a
JCL - 2bb179375a based on jdk8u342-b05)
Summary of problem
The following test case crashes OpenJ9's JIT compiler
$ cat Test.java
public class Test {
static int N;
static long instanceCount;
int iFld;
static float fFld1;
static void vMeth1() {
int i4, i6;
for (i4 = 4; i4 < 115; i4 += 3)
for (i6 = 1; i6 < 14; ++i6)
for (int ax$3 = -4605; ax$3 < 4492; ax$3 += 1)
try {
double[] ax$0 = new double[1];
ax$0[0] = 0;
} catch (Throwable ax$2) {
} finally {
}
}
static int iMeth(long l, float f) {
int i2, iArr2[] = new int[N];
i2 = 1;
while (i2 < 118) vMeth1();
long meth_res = checkSum(iArr2);
return (int) meth_res;
}
void vMeth(int i) {
int i1;
instanceCount = iMeth(instanceCount, fFld1);
}
public void mainTest(String[] strArr1) {
vMeth(iFld);
}
public static void main(String[] strArr) {
Test _instance = new Test();
for (int i = 0; ; ) _instance.mainTest(strArr);
}
public static long checkSum(int[] a) {
long sum = 0;
for (int j = 0; j < a.length; j++) {
sum += (a[j] / (j + 1) + a[j] % (j + 1));
}
return sum;
}
}
Diagnostic files
By issuing
$ java -Xmx1G Test
the following crash log is given:
#0: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x7ab6d5) [0x7ffadf3ce6d5]
#1: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x7b69c0) [0x7ffadf3d99c0]
#2: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x1125d9) [0x7ffaded355d9]
#3: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9prt29.so(+0x2911a) [0x7ffae446f11a]
#4: /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7ffae48e4420]
#5: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x67d29b) [0x7ffadf2a029b]
#6: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x67ec81) [0x7ffadf2a1c81]
#7: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x680acd) [0x7ffadf2a3acd]
#8: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x681e27) [0x7ffadf2a4e27]
#9: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x505e12) [0x7ffadf128e12]
#10: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x635447) [0x7ffadf258447]
#11: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x6359d9) [0x7ffadf2589d9]
#12: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x636d8b) [0x7ffadf259d8b]
#13: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x42ba25) [0x7ffadf04ea25]
#14: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x121e6a) [0x7ffaded44e6a]
#15: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x122c73) [0x7ffaded45c73]
#16: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9prt29.so(+0x29c53) [0x7ffae446fc53]
#17: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x120a69) [0x7ffaded43a69]
#18: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x1210d7) [0x7ffaded440d7]
#19: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x11fdab) [0x7ffaded42dab]
#20: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x12009a) [0x7ffaded4309a]
#21: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x120162) [0x7ffaded43162]
#22: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9prt29.so(+0x29c53) [0x7ffae446fc53]
#23: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so(+0x1205a2) [0x7ffaded435a2]
#24: /zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9thr29.so(+0xf2b2) [0x7ffae46322b2]
#25: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7ffae48d8609]
#26: /lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7ffae4a18133]
Unhandled exception
Type=Segmentation error vmState=0x000522ff
J9Generic_Signal_Number=00000018 Signal_Number=0000000b Error_Value=00000000 Signal_Code=00000001
Handler1=00007FFAE4686020 Handler2=00007FFAE446EEF0 InaccessibleAddress=0000000000000060
RDI=00007FFADBFED3B8 RSI=0000000001000000 RAX=00007FFADC243000 RBX=000000000000000E
RCX=00000000FFFFFFF1 RDX=00007FFADC247380 R8=0000000000000000 R9=00007FFADC247350
R10=0000000000040000 R11=0000000000000000 R12=0000000000000001 R13=00007FFADBFEC6E0
R14=0000000000000027 R15=00007FFADC214F40
RIP=00007FFADF2A029B GS=0000 FS=0000 RSP=00007FFADD0D8B50
EFlags=0000000000010287 CS=0033 RBP=0000000000000000 ERR=0000000000000004
TRAPNO=000000000000000E OLDMASK=0000000000000000 CR2=0000000000000060
xmm0 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm1 4059000000000000 (f: 0.000000, d: 1.000000e+02)
xmm2 3ff0000000000000 (f: 0.000000, d: 1.000000e+00)
xmm3 3ff0000000000000 (f: 0.000000, d: 1.000000e+00)
xmm4 4010000000000000 (f: 0.000000, d: 4.000000e+00)
xmm5 00007ffac4000080 (f: 3288334336.000000, d: 6.952245e-310)
xmm6 00007ffadc064590 (f: 3691398656.000000, d: 6.952265e-310)
xmm7 3ff0000000000000 (f: 0.000000, d: 1.000000e+00)
xmm8 252e732a2e250073 (f: 774176896.000000, d: 1.372768e-129)
xmm9 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm10 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm11 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm12 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm13 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm14 0000000000000000 (f: 0.000000, d: 0.000000e+00)
xmm15 0000000000000000 (f: 0.000000, d: 0.000000e+00)
Module=/zdata/congli/OpenJ9/jdk8/jre/lib/amd64/default/libj9jit29.so
Module_base_address=00007FFADEC23000
Method_being_compiled=Test.vMeth1()V
Target=2_90_20220610_000000 (Linux 5.4.0-117-generic)
CPU=amd64 (128 logical CPUs) (0x3ee84d7000 RAM)
----------- Stack Backtrace -----------
_ZN20TR_RegisterCandidate29extendLiveRangesForLiveOnExitEPN2TR11CompilationEPPNS0_5BlockER8TR_ArrayIS4_E+0x38b (0x00007FFADF2A029B [libj9jit29.so+0x67d29b])
_ZN20TR_RegisterCandidate24processLiveOnEntryBlocksEPPN2TR5BlockEPiPNS0_11CompilationER8TR_ArrayIiES9_S9_P12TR_BitVectorRS7_IS2_Eb+0x1651 (0x00007FFADF2A1C81 [libj9jit29.so+0x67ec81])
_ZN20TR_RegisterCandidate9setWeightEPPN2TR5BlockEPiPNS0_11CompilationER8TR_ArrayIiES9_S9_P12TR_BitVectorRS7_IS2_ERSA_SE_+0x62d (0x00007FFADF2A3ACD [libj9jit29.so+0x680acd])
_ZN21TR_RegisterCandidates6assignEPPN2TR5BlockEiRiS4_+0xb67 (0x00007FFADF2A4E27 [libj9jit29.so+0x681e27])
_ZN26TR_GlobalRegisterAllocator7performEv+0xa22 (0x00007FFADF128E12 [libj9jit29.so+0x505e12])
_ZN3OMR9Optimizer19performOptimizationEPK20OptimizationStrategyiii+0x767 (0x00007FFADF258447 [libj9jit29.so+0x635447])
_ZN3OMR9Optimizer19performOptimizationEPK20OptimizationStrategyiii+0xcf9 (0x00007FFADF2589D9 [libj9jit29.so+0x6359d9])
_ZN3OMR9Optimizer8optimizeEv+0x1db (0x00007FFADF259D8B [libj9jit29.so+0x636d8b])
_ZN3OMR11Compilation7compileEv+0x925 (0x00007FFADF04EA25 [libj9jit29.so+0x42ba25])
_ZN2TR28CompilationInfoPerThreadBase7compileEP10J9VMThreadPNS_11CompilationEP17TR_ResolvedMethodR11TR_J9VMBaseP19TR_OptimizationPlanRKNS_16SegmentAllocatorE+0x4fa (0x00007FFADED44E6A [libj9jit29.so+0x121e6a])
_ZN2TR28CompilationInfoPerThreadBase14wrappedCompileEP13J9PortLibraryPv+0x323 (0x00007FFADED45C73 [libj9jit29.so+0x122c73])
omrsig_protect+0x1e3 (0x00007FFAE446FC53 [libj9prt29.so+0x29c53])
_ZN2TR28CompilationInfoPerThreadBase7compileEP10J9VMThreadP21TR_MethodToBeCompiledRN2J917J9SegmentProviderE+0x309 (0x00007FFADED43A69 [libj9jit29.so+0x120a69])
_ZN2TR24CompilationInfoPerThread12processEntryER21TR_MethodToBeCompiledRN2J917J9SegmentProviderE+0x207 (0x00007FFADED440D7 [libj9jit29.so+0x1210d7])
_ZN2TR24CompilationInfoPerThread14processEntriesEv+0x38b (0x00007FFADED42DAB [libj9jit29.so+0x11fdab])
_ZN2TR24CompilationInfoPerThread3runEv+0x2a (0x00007FFADED4309A [libj9jit29.so+0x12009a])
_Z30protectedCompilationThreadProcP13J9PortLibraryPN2TR24CompilationInfoPerThreadE+0x82 (0x00007FFADED43162 [libj9jit29.so+0x120162])
omrsig_protect+0x1e3 (0x00007FFAE446FC53 [libj9prt29.so+0x29c53])
_Z21compilationThreadProcPv+0x1d2 (0x00007FFADED435A2 [libj9jit29.so+0x1205a2])
thread_wrapper+0x162 (0x00007FFAE46322B2 [libj9thr29.so+0xf2b2])
start_thread+0xd9 (0x00007FFAE48D8609 [libpthread.so.0+0x8609])
clone+0x43 (0x00007FFAE4A18133 [libc.so.6+0x11f133])
---------------------------------------
JVMDUMP039I Processing dump event "gpf", detail "" at 2022/06/13 16:37:42 - please wait.
JVMDUMP032I JVM requested System dump using '/zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/core.20220613.163742.3084775.0001.dmp' in response to an event
JVMDUMP010I System dump written to /zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/core.20220613.163742.3084775.0001.dmp
JVMDUMP032I JVM requested Java dump using '/zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/javacore.20220613.163742.3084775.0002.txt' in response to an event
JVMDUMP010I Java dump written to /zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/javacore.20220613.163742.3084775.0002.txt
JVMDUMP032I JVM requested Snap dump using '/zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/Snap.20220613.163742.3084775.0003.trc' in response to an event
JVMDUMP010I Snap dump written to /zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/Snap.20220613.163742.3084775.0003.trc
JVMDUMP032I JVM requested JIT dump using '/zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/jitdump.20220613.163742.3084775.0004.dmp' in response to an event
JVMDUMP051I JIT dump occurred in 'JIT Compilation Thread-000' thread 0x0000000000051900
JVMDUMP049I JIT dump notified all waiting threads of the current method to be compiled
JVMDUMP054I JIT dump is tracing the IL of the method on the crashed compilation thread
JVMDUMP048I JIT dump method being compiled is an ordinary method
JVMDUMP053I JIT dump is recompiling Test.vMeth1()V
JVMDUMP052I JIT dump recursive crash occurred on diagnostic thread
JVMDUMP010I JIT dump written to /zdata/congli/ax-exp/ax-eval/2-ax-only/62.openj9/mutant/red/jitdump.20220613.163742.3084775.0004.dmp
JVMDUMP013I Processed dump event "gpf", detail "".
Please also check openj9-bug-62.tar.gz for all the logs (jitdump, snap, etc.) and the testcase (Test.java, Test.class).