Open
Description
We recently upgraded dd-trace-java
from 1.31.2
to 1.34.0
and have gotten a crash. We've only seen this happens once so far.
Not completely sure if this is a Datadog issue or a JVM issue.
Here is the log:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (codeCache.cpp:654), pid=14, tid=430
# guarantee(is_result_safe || is_in_asgct()) failed: unsafe access to zombie method
#
# JRE version: OpenJDK Runtime Environment Corretto-17.0.11.9.1 (17.0.11+9) (build 17.0.11+9-LTS)
# Java VM: OpenJDK 64-Bit Server VM Corretto-17.0.11.9.1 (17.0.11+9-LTS, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x5b8d61] CodeCache::find_blob(void*)+0xc1
#
# The JFR repository may contain useful JFR files. Location: /dumps/2024_05_30_12_10_17_14
#
[...]
--------------- T H R E A D ---------------
Current thread (0x00007f36d80e94f0): JavaThread "pool-18-thread-63" [_thread_in_Java, id=430, stack(0x00007f369c4b5000,0x00007f369c5b6000)]
Stack: [0x00007f369c4b5000,0x00007f369c5b6000], sp=0x00007f369c5b3400, free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x5b8d61] CodeCache::find_blob(void*)+0xc1
V [libjvm.so+0xeee39b] JavaThread::pd_get_top_frame_for_signal_handler(frame*, void*, bool)+0x1ab
V [libjvm.so+0x6ef823] AsyncGetCallTrace+0x1c3
C [libjavaProfiler9259657795778516739.so+0x26926] Profiler::getJavaTraceAsync(void*, ASGCT_CallFrame*, int, StackContext*, bool*)+0x176
C [libjavaProfiler9259657795778516739.so+0x27811] Profiler::recordSample(void*, unsigned long long, int, int, Event*)+0x1e1
C [libjavaProfiler9259657795778516739.so+0x429d2] WallClock::sharedSignalHandler(int, siginfo_t*, void*)+0x1a2
C [libpthread.so.0+0x118e0]
C [linux-vdso.so.1+0xc62] clock_gettime+0x242
C [libc.so.6+0xfc426] __clock_gettime+0x26
Registers:
[...]