SIGSEGV on Java 21 / aarch64
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- devtools, performance
Línea de trabajo
Comienza con los frames de biblioteca reportados de libasyncProfiler-linux-arm64, AsyncGetCallTrace y el cambio enlazado de Java 21 en async-profiler; después, compáralos con el fork de Grafana. Usa el hs_err.log de Java 21 aarch64 proporcionado e investiga si el fallo se puede reproducir. Se considera terminado cuando el SIGSEGV se haya corregido o se evite de forma fiable con la carga de trabajo de Trino indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hey folks!
We've been running Pyroscope v0.12.2 within Trino, and after a recent upgrade to JVM 21 we started getting SIGSEGV errors.
Errors look like:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000ffffa989b478, pid=1, tid=3987
#
# JRE version: OpenJDK Runtime Environment Temurin-21.0.1+12 (21.0.1+12) (build 21.0.1+12-LTS)
# Java VM: OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (21.0.1+12-LTS, mixed mode, sharing, tiered, compressed class ptrs, g1 gc, linux-aarch64)
# Problematic frame:
# V [libjvm.so+0x6ce478] frame::sender_for_entry_frame(RegisterMap*) const+0x128
#
# Core dump will be written. Default location: /data/trino/core.1
#
# If you would like to submit a bug report, please visit:
# https://github.com/adoptium/adoptium-support/issues
#
--------------- S U M M A R Y ------------
Command Line: -Xmx104857M -javaagent:/app/libs/jmx_prometheus_javaagent-0.20.0.jar=9000:/var/lib/trino/prometheus-exporter/prometheus-exporter-config.yaml -Xlog:gc* -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+ExitOnOutOfMemoryError -Djdk.attach.allowAttachSelf=true -XX:ReservedCodeCacheSize=512M -XX:PerMethodRecompilationCutoff=10000 -XX:PerBytecodeRecompilationCutoff=10000 -Djdk.nio.maxCachedBufferSize=2000000 -XX:+UnlockDiagnosticVMOptions -XX:+UseAESCTRIntrinsics -XX:+UnlockDiagnosticVMOptions -XX:GCLockerRetryAllocationCount=100 -XX:+UseTransparentHugePages -XX:G1ReservePercent=35 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/heapdumps/ -XX:ErrorFile=/heapdumps/hs_err.logpaid-20u.hprof -Dnode.id=paid-20u-kynty-1-coordinator-0-1704338288 -Dnode.environment=production -Dnode.data-dir=/data/trino -Dplugin.dir=/usr/lib/trino/plugin -Dlog.levels-file=/etc/trino/..2024_01_04_03_17_36.2507751579/log.properties -Dconfig=/etc/trino/..2024_01_04_03_17_36.2507751579/config.properties io.trino.server.TrinoServer
Host: AArch64, 32 cores, 123G, Red Hat Enterprise Linux release 9.3 (Plow)
Time: Thu Jan 4 03:43:33 2024 UTC elapsed time: 1524.811066 seconds (0d 0h 25m 24s)
--------------- T H R E A D ---------------
Current thread (0x0000ffe36c9970e0): JavaThread "ContinuousTaskStatusFetcher-20240104_034212_00312_yvutb.87.11.0-3205" daemon [_thread_in_Java, id=3987, stack(0x0000ffe11a65a000,0x0000ffe11a858000) (2040K)]
Stack: [0x0000ffe11a65a000,0x0000ffe11a858000], sp=0x0000ffe11a852f50, free space=2019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x6ce478] frame::sender_for_entry_frame(RegisterMap*) const+0x128
V [libjvm.so+0x6c96e8] vframeStreamForte::forte_next()+0x2f8
V [libjvm.so+0x6c9d4c] forte_fill_call_trace_given_top(JavaThread*, ASGCT_CallTrace*, int, frame)+0x25c
V [libjvm.so+0x6ca450] AsyncGetCallTrace+0x210
C [libasyncProfiler-linux-arm64-86b5f622ede6435644a9c1857582e54b4d2f2e55.so+0x1eb08] Profiler::getJavaTraceAsync(void*, ASGCT_CallFrame*, int, StackContext*) [clone .isra.675]+0x75c
C [libasyncProfiler-linux-arm64-86b5f622ede6435644a9c1857582e54b4d2f2e55.so+0x1ee24] Profiler::recordSample(void*, unsigned long long, int, Event*)+0x2dc
C [libasyncProfiler-linux-arm64-86b5f622ede6435644a9c1857582e54b4d2f2e55.so+0x1feb0] ITimer::signalHandler(int, siginfo_t*, void*)+0x4c
C [linux-vdso.so.1+0x83c] __kernel_rt_sigreturn+0x0
(Happy to share the whole hs_err.log if needed 👍 )
I don't know if there's a way to consistently reproduce the issue; it happens randomly once every day or so while running 100 nodes.
I'm thinking this is pyroscope-related as:
- The native frames mention async-profiler
- Disabling pyroscope fixes the issue 😅
It may be related to commit https://github.com/async-profiler/async-profiler/commit/d3dde7e5e7e6990b9c0e418ed8683b84fa919bac in async-profiler to support Java 21, that hasn't yet been ported to Grafana's fork?
- Lenguaje dominante
- Java
- Estrellas
- 125
- Forks
- 48
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de grafana/pyroscope-java
-
Clean up dead publishing repository config and credentials in subproject build filesPosiblemente ocupada @arnabnandy7 la tomó hace 23 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
grafana/pyroscope-java#294 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
grafana/pyroscope-java#371 · 2 reacciones ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
grafana/pyroscope-java#368 · 1 comentario ·
-
improve asprof extractionAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
grafana/pyroscope-java#283 ·
-
libasyncProfiler-linux-x64.so dump in /tmpQuizá libre de nuevo @korniltsev-grafanista la tomó hace 261 días y no hay ningún pull request abierto. Abierto
grafana/pyroscope-java#250 · 1 comentario · 1 asignado ·
Todos los issues de grafana/pyroscope-java
Issues similares
-
RRateLimiter acquire methods accept negative permits and raise available permits above the rate.Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 4 días
-
README 中的代码语言数量与当前目录不一致Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
krahets/hello-algo#1993 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
NationalSecurityAgency/ghidra#9884 ·
Los mantenedores suelen responder en 2 días
-
Status: Pending Review Type: Feature Request
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
OpenRefine/OpenRefine#8019 ·
Los mantenedores suelen responder en 1 día
-
[TEMP] pin maven version to 3.9.xPosiblemente ocupada @petrenyi-mark la tomó hoy. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 62/100