Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Linked analyzers cannot be stopped: a stuck stack or concurrency analyzer stalls ctrace and its server

Đang mở
#172 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
58/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cpp, python
Lĩnh vực
devtools, testing

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

refactor severity/major

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

  1. Run each linked analyzer in a child process. ctrace re-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).
  2. 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_s and tools.coretrace-concurrency-analyzer.timeout_s stop the analyzer, which is reported as failed (exit code 3), as for external tools.
  • docs/configuration.md no 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).

Ngôn ngữ chính
C++
Star
5
Fork
4
Merge trung bình
1 giờ 9 phút
Pull request đã merge (30 ngày)
81

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CoreTrace/coretrace

Tất cả issue của CoreTrace/coretrace

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.