You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Review jobs stuck in 'running' after process death — no dead-PID detection #164
When a Codex review process crashes or times out, the companion job state file stays in "status": "running" indefinitely. The --wait polling loop continues checking for completion against a dead PID, eventually timing out with no useful error message.
Reproduction
Launch a large review: /codex:review --wait --base upstream/main (148 files, ~19.5k lines)
The review session starts, logs "Reviewer started", then the process dies silently
Job state file still says "status": "running"
The --wait poll loop spins for 10+ minutes before the caller gives up
No error is recorded — the job just looks "stuck"
Evidence from job log
[2026-04-07T02:21:02.393Z] Starting Codex Review.
[2026-04-07T02:21:03.165Z] Starting Codex review thread.
[2026-04-07T02:21:04.768Z] Thread ready (019d65be-512f-7cc0-85f2-a5ddeb9bce70).
[2026-04-07T02:21:04.825Z] Reviewer started: changes against 'upstream/main'
(nothing further — process PID 2568362 died)
Expected behavior
The broker should detect when the child Codex process exits unexpectedly and mark the job as "failed" with an error message
The --wait poll should check if the PID is still alive and fail fast if it isn't
On timeout, the error message should indicate the process died rather than just "still running"
Impact
Wastes 10+ minutes of wall time before the caller realizes the review failed
No diagnostic information about why it failed (OOM? API timeout? context overflow?)
Makes large reviews unreliable — the only recovery is manual cancel + retry
Activity
WindChimeRan commentedon Apr 8, 2026
same issue
youaresodalgona commentedon Apr 8, 2026
same issue.
fix: detect dead worker PID and fail job fast in status --wait
fix(runtime): prevent tracked jobs hanging forever on broker disconnect
Brooooooklyn commentedon Apr 14, 2026
Same here
fix(runtime): prevent tracked jobs hanging forever on broker disconnect
fix: reconcile stale 'running' jobs when tracked PID is dead
fix: add captureTurn transport watchdog and runTrackedJob hard timeout
fix: reconcile stale 'running' jobs when tracked PID is dead
fix: add captureTurn transport watchdog and runTrackedJob hard timeout
fix(broker): P0 stability — idle timeout + PID liveness + shutdown ti…
fix(runtime): prevent tracked jobs hanging forever on broker disconnect
fix(state): reap stale running jobs via OS-level PID liveness check (o…
dkundel-openai commentedon Aug 11, 2026
Duplicate of #222.