ContendedCallTraceStorageTest: skip on musl+aarch64 debug (CTimer::unregisterThread race)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- java
調査の方向性
ddprof-test/src/test/java/com/datadoghq/profiler/ContendedCallTraceStorageTest.java から始めて、isPlatformSupported() と musl+aarch64 のデバッグ再現を調べてください。次に、teardown とシグナル配信に焦点を当てて、CTimer::registerThread と CTimer::unregisterThread を追跡してください。対象の構成でテストがこの platform skip を必要とせず、安定して通過すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- C++
- スター
- 33
- フォーク
- 14
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 41
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataDog/java-profiler のほかの issue
-
needs-review upstream-tracking
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
DataDog/java-profiler#846 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
DataDog/java-profiler#843 ·
メンテナーはふだん 1 日以内に返信
-
needs-review upstream-tracking
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataDog/java-profiler#829 ·
メンテナーはふだん 1 日以内に返信
-
needs-review upstream-tracking
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataDog/java-profiler#812 ·
メンテナーはふだん 1 日以内に返信
-
needs-review upstream-tracking
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataDog/java-profiler#785 ·
メンテナーはふだん 1 日以内に返信
DataDog/java-profiler の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
c++ good first issue M2: audio plumbing no hardware needed tests
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
GageLawton/noise-cancellation#23 ·
メンテナーはふだん 1 日以内に返信
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
nullmoth/nvidia-macos-driver#126 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
objectionary/eo-graphs#85 ·