Linked analyzers cannot be stopped: a stuck stack or concurrency analyzer stalls ctrace and its server
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 58/100
調査の方向性
Start with the external-tool timeout path referenced in the issue and the linked analyzer integration, then read docs/configuration.md and the timeout test coverage. Implement timeout handling for both linked analyzers so they are reported as failed with exit code 3, update the configuration documentation, and add a test that exercises the timeout path.
索引モデルが issue の本文から書いたものです。
説明
External tools stop after tools.<name>.timeout_s (#137, #156). The stack analyzer and the concurrency analyzer are linked into ctrace and run on its thread pool, so nothing can stop them: docs/configuration.md says so under tools.<name>.timeout_s.
Observed
On CoreTrace's own code, the pinned stack analyzer (v0.22.0) ran for 42 minutes without finishing (#169). The CLI only ends when something outside kills it, such as the CI job's time limit, and then gives no report. In server mode, the run_analysis request never returns and keeps a worker of the shared pool (#140).
Options
- Run each linked analyzer in a child process.
ctracere-executes itself with an internal subcommand and stops the child on timeout, as it does for external tools. The analyzers' API stays as it is; the cost is a process start and serializing the report, which is already structured (#66). - A cancellation point in the analyzers, for example a stop token checked between functions or modules. There is no extra process, but both analyzers' APIs change, and a function stuck inside one fixed point still cannot be stopped.
Option 1 reuses the timeout path that external tools already have.
Acceptance
tools.ctrace_stack_analyzer.timeout_sandtools.coretrace-concurrency-analyzer.timeout_sstop the analyzer, which is reported as failed (exit code 3), as for external tools.docs/configuration.mdno longer says these two analyzers cannot be stopped.- A test covers the timeout path.
From the technical debt register (docs/quality/technical-debt.md, D2).
- 主要言語
- C++
- スター
- 5
- フォーク
- 4
- 平均マージ
- 1時間 2分
- マージ済み PR(30日)
- 74
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CoreTrace/coretrace のほかの issue
-
documentation severity/minor
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
chore good first issue severity/minor
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
build severity/minor
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
build good first issue severity/minor
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
test: add unit tests for ctrace::RunDirectory対応中かも @tecnolgd が 1 日前に担当しました。 オープンgood first issue test
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
CoreTrace/coretrace#164 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
CoreTrace/coretrace の issue をすべて見る
似ている issue
-
agent:WSL bug linux LOW
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
Build failure: limoオープン0.kind: build failure
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1時間未満 初心者へのやさしさ 72/100
finalburnneo/FBNeo#2803 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
ai_p1 comp-message-queues
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ClickHouse/ClickHouse#125890 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
carla-simulator/carla#9973 ·
メンテナーはふだん 1 日以内に返信