ContendedCallTraceStorageTest: skip on musl+aarch64 debug (CTimer::unregisterThread race)
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- java
- Domínio
- devtools, performance, testing-qa
Direção de pesquisa
Comece por ddprof-test/src/test/java/com/datadoghq/profiler/ContendedCallTraceStorageTest.java e examine isPlatformSupported() e a reprodução de debug de musl+aarch64. Em seguida, rastreie CTimer::registerThread e CTimer::unregisterThread, com foco no teardown e na entrega de sinais. O trabalho estará concluído quando o teste não precisar mais deste platform skip e passar de forma confiável na configuração afetada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- C++
- Estrelas
- 33
- Forks
- 14
- Merge médio
- 2d 4h
- PRs com merge (30d)
- 52
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de DataDog/java-profiler
-
needs-review upstream-tracking
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 15/100
DataDog/java-profiler#846 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
DataDog/java-profiler#843 ·
Mantenedores costumam responder em até 1 dia
-
needs-review upstream-tracking
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
DataDog/java-profiler#829 ·
Mantenedores costumam responder em até 1 dia
-
needs-review upstream-tracking
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
DataDog/java-profiler#812 ·
Mantenedores costumam responder em até 1 dia
-
needs-review upstream-tracking
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
DataDog/java-profiler#785 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de DataDog/java-profiler
Issues semelhantes
-
objdetect(mcc): CCheckerDetector leaves its chart type uninitialized 🤖🤖🤖Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
(S1 - Need confirmation)
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
CleverRaven/Cataclysm-DDA#89182 ·
Mantenedores costumam responder em até 1 dia
-
ai_p2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
ClickHouse/ClickHouse#126833 ·
Mantenedores costumam responder em até 1 dia
-
clang:static analyzer
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
llvm/llvm-project#233598 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100