ContendedCallTraceStorageTest: skip on musl+aarch64 debug (CTimer::unregisterThread race)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- java
- Área
- devtools, performance, testing-qa
Línea de trabajo
Comienza con ddprof-test/src/test/java/com/datadoghq/profiler/ContendedCallTraceStorageTest.java e inspecciona isPlatformSupported() y la reproducción de depuración de musl+aarch64. Después, sigue el recorrido de CTimer::registerThread y CTimer::unregisterThread, centrándote en el teardown y la entrega de señales. El trabajo estará terminado cuando la prueba ya no necesite este salto de plataforma y pase de forma fiable en la configuración afectada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
ContendedCallTraceStorageTest is disabled on musl+aarch64 debug via isPlatformSupported() returning false because CTimer::unregisterThread races with concurrent thread teardown on that combination, causing spurious failures.
Affected file
ddprof-test/src/test/java/com/datadoghq/profiler/ContendedCallTraceStorageTest.java
Reproduction
Run the test with:
- libc: musl
- arch: aarch64
- build type: debug
The race manifests as a crash or hang inside CTimer::unregisterThread during test teardown when profiled threads exit concurrently.
Investigation notes
- The bug is pre-existing and unrelated to the StringDictionary refactor in PR #524.
CTimerrelies on signal delivery to the thread being unregistered; on musl+aarch64 debug the timing of thread teardown vs. signal delivery is different enough to expose a race.- A proper fix likely requires guarding
unregisterThreadwith the same lock asregisterThread, or making the unregister step signal-delivery-free.
Tracked by
PR #524 added the skip; this issue tracks the underlying bug.
- Lenguaje dominante
- C++
- Estrellas
- 33
- Forks
- 14
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 52
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
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 DataDog/java-profiler
-
needs-review upstream-tracking
Dificultad 4/5 3-5 días Aptitud para principiantes 15/100
DataDog/java-profiler#846 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
DataDog/java-profiler#843 ·
Los mantenedores suelen responder en 1 día
-
needs-review upstream-tracking
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DataDog/java-profiler#829 ·
Los mantenedores suelen responder en 1 día
-
needs-review upstream-tracking
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DataDog/java-profiler#812 ·
Los mantenedores suelen responder en 1 día
-
needs-review upstream-tracking
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
DataDog/java-profiler#785 ·
Los mantenedores suelen responder en 1 día
Todos los issues de DataDog/java-profiler
Issues similares
-
os:Linux
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
acceptable_buffer_backends: unknown backend names are silently ignoredPosiblemente ocupada @mini-1235 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
ros2/rmw_fastrtps#945 ·
Los mantenedores suelen responder en 1 día
-
bot-triaged module: correctness (silent) module: mps module: NaNs and Infs triage review
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día