I'm randomly getting this crash recently and I'm not sure how to debug this. Can anyone please point me in the right direction. Tools I have used are,
Spring Boot 2 + Kubernetes + adopt openj9 jdk13
Assertion failed at /home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-linux-x64-openj9/workspace/build/src/build/linux-x86_64-server-release/vm/compiler/../compiler/optimizer/InterpreterEmulator.cpp:208: 0
VMState: 0x000501ff
unexpected bytecode in thunk archetype 0x7f98f6483ee0 at bcIndex 40 JBdload2 (41)
compiling java/lang/invoke/AsTypeHandle.invokeExact_thunkArchetype_X(Ljava/lang/Object;Ljava/lang/Object;)V at level: warm
0:/opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x798015) [0x7f9962316015]
1: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x7a2dc0) [0x7f9962320dc0]
JVMDUMP039I Processing dump event “abort”, detail “” at 2020/05/12 16:35:10 - please wait.
JVMDUMP032I JVM requested System dump using ‘/home/springboot/core.20200512.163510.1.0001.dmp’ in response to an eventwe run into the same issue, it happens by randomly using the app, no luck getting the core dump so far (Spring Boot 2.3.0, Kubernetes 1.15, adoptopenjdk/openjdk13-openj9:alpine-jre)
Error Log
Assertion failed at /home/jenkins/workspace/build-scripts/jobs/jdk13u/jdk13u-linux-x64-openj9/workspace/build/src/build/linux-x86_64-server-release/vm/compiler/../compiler/optimizer/InterpreterEmulator.cpp:208: 0
VMState: 0x000501ff
unexpected bytecode in thunk archetype 0x7f0ad41a3ee0 at bcIndex 40 JBdload2 (41)
compiling java/lang/invoke/AsTypeHandle.invokeExact_thunkArchetype_X(Ljava/lang/Object;Ljava/lang/Object;)V at level: warm
#0: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x798015) [0x7f0aebac4015]
#1: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x7a2dc0) [0x7f0aebacedc0]
#2: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x465c4b) [0x7f0aeb791c4b]
#3: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x465e3d) [0x7f0aeb791e3d]
#4: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1f58bc) [0x7f0aeb5218bc]
#5: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1f9532) [0x7f0aeb525532]
#6: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1e78a0) [0x7f0aeb5138a0]
#7: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1e9e02) [0x7f0aeb515e02]
#8: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1cb852) [0x7f0aeb4f7852]
#9: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1d73b9) [0x7f0aeb5033b9]
#10: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1def1b) [0x7f0aeb50af1b]
#11: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x55489e) [0x7f0aeb88089e]
#12: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1d6846) [0x7f0aeb502846]
#13: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x6164d7) [0x7f0aeb9424d7]
#14: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x617d7b) [0x7f0aeb943d7b]
#15: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x407f9d) [0x7f0aeb733f9d]
#16: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x137919) [0x7f0aeb463919]
#17: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x13861c) [0x7f0aeb46461c]
#18: /opt/java/openjdk/lib/compressedrefs/libj9prt29.so(+0x20df3) [0x7f0af121cdf3]
#19: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x13a115) [0x7f0aeb466115]
#20: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x13a6bf) [0x7f0aeb4666bf]
#21: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1366bb) [0x7f0aeb4626bb]
#22: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x1369da) [0x7f0aeb4629da]
#23: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x136a9a) [0x7f0aeb462a9a]
#24: /opt/java/openjdk/lib/compressedrefs/libj9prt29.so(+0x20df3) [0x7f0af121cdf3]
#25: /opt/java/openjdk/lib/compressedrefs/libj9jit29.so(+0x136ef4) [0x7f0aeb462ef4]
#26: /opt/java/openjdk/lib/compressedrefs/libj9thr29.so(+0xe1a6) [0x7f0af168b1a6]
#27: /usr/glibc-compat/lib/libpthread.so.0(+0x8f00) [0x7f0af2d9af00]
#28: function clone+0x3f [0x7f0af2cc645f]
JVMDUMP039I Processing dump event "abort", detail "" at 2020/05/27 06:34:58 - please wait.
JVMDUMP032I JVM requested System dump using '//core.20200527.063458.1.0001.dmp' in response to an event
JVMPORT030W /proc/sys/kernel/core_pattern setting "|/usr/share/apport/apport %p %s %c %d %P %E" specifies that the core dump is to be piped to an external program. Attempting to rename either core or core.71.
JVMDUMP012E Error in System dump: The core file created by child process with pid = 71 was not found. Expected to find core file with name "//core"
JVMDUMP032I JVM requested Java dump using '//javacore.20200527.063458.1.0002.txt' in response to an event
JVMDUMP010I Java dump written to //javacore.20200527.063458.1.0002.txt
JVMDUMP032I JVM requested Snap dump using '//Snap.20200527.063458.1.0003.trc' in response to an event
JVMDUMP010I Snap dump written to //Snap.20200527.063458.1.0003.trc
JVMDUMP007I JVM Requesting JIT dump using '//jitdump.20200527.063458.1.0004.dmp'
JVMDUMP010I JIT dump written to //jitdump.20200527.063458.1.0004.dmp
JVMDUMP013I Processed dump event "abort", detail "". Submitted issue on openj9 github
TLDR: This is fixed in the v.0.20.0 release (April 2020) of OpenJ9. The latest release binaries from AdoptOpenJDK for JDK 8, 11 & 14 contain the fix.
The assertion failure is an assertion JIT compiling the MethodHandle (MH) code. A new abstract interpreter was added to give the JIT a better view of the MH "thunkArchetype" code and it missed some of the bytecodes that could occur in MH thunkArchetypes.
See https://github.com/eclipse/openj9/pull/8598 for more details of the fix.