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

engine.pid that is a FIFO blocks the run pid reader forever

Cerrado
#868 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@dracic ya está trabajando en esto.

Desde el 9/10/2026.

  • #10 de @dracic — abierto
  • #873 de @dracic — fusionado

Evaluación

Dificultad
3/5
Tiempo estimado
Medio día
Aptitud para principiantes
52/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Start with engine_liveness in src/bmad_loop/runs.py, which reads engine.pid with Path.read_text(), and trace its callers in prune_sessions and the evidence scan. Reproduce by creating a FIFO named engine.pid in a temporary run dir and running bmad-loop cleanup, which should hang. Done means the reader opens non-blocking, checks with fstat that the file is regular, and reports a non-regular file as unreadable/unknown rather than as no engine.

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

Descripción

The shared run pid reader (engine_liveness in src/bmad_loop/runs.py) reads engine.pid with Path.read_text(). If engine.pid is a FIFO, opening it blocks until a writer appears, so bmad-loop cleanup hangs and the TUI's cleanup worker never finishes or shows its result.

A FIFO there needs a broken or hostile run dir, but every path that probes run liveness goes through this reader: the existing cleanup's prune_sessions, and, since #864, the evidence scan when the backend is unavailable.

Proposed fix: open with O_NONBLOCK (where available), check that the descriptor is a regular file with fstat, then read it. A non-regular file keeps the existing unreadable/unknown semantics, so it is reported, never read as "no engine".

Found in review of the #864 fix.

Lenguaje dominante
Python
Estrellas
160
Forks
68
Merge medio
1 d 6 h
PR fusionados (30 d)
90

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 bmad-code-org/bmad-loop

Todos los issues de bmad-code-org/bmad-loop

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.