Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#172 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
58/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp, python
Área
devtools, testing

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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).

Lenguaje dominante
C++
Estrellas
5
Forks
4
Merge medio
1 h 2 min
PR fusionados (30 d)
74

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de CoreTrace/coretrace

Todos los issues de CoreTrace/coretrace

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.