-
Notifications
You must be signed in to change notification settings - Fork 18
fix: time out hung gh exec in capacity wait #325
Copy link
Copy link
Open
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExempts this issue from stale automation.Exempts this issue from stale automation.
Description
Activity
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExempts this issue from stale automation.Exempts this issue from stale automation.
Type
Fields
Priority
None yet
scripts/lib.mjsghRawcalledexecFileSync(gh, ..., --paginate --slurp)with no timeout. If that GitHub CLI child never returns,waitForLiveWorkerCapacitycannot reach its 30 minute deadline and dispatch stays pinned until someone kills it.What happens
waitForLiveWorkerCapacity.gh api .../runs --paginate --slurpviaghRaw/execFileSync.timeout, so a stalledghnever returns.This is separate from dispatch secret/variable list timeouts (#323) and dispatch child
runCommandtimeouts (#324).Proposed fix
Give
ghRawthe same timeout contract as worker planner/review children:CLOWNFISH_GH_EXEC_TIMEOUT_MS(default 2 minutes)execFileSync(..., { timeout, killSignal: "SIGKILL" })for capacityghpollswaitForLiveWorkerCapacitydeadlineETIMEDOUT, keep polling until that deadline, then throw the existing capacity timeoutA source contract plus hung-gh and timely-list fixtures live in
test/lib.test.mjs.Fork branch
This repo limits pull requests to collaborators, so I could not open a PR. The patch is on my fork:
SebTardif:fix/capacity-gh-exec-timeouteeece3d86Feel free to cherry-pick that commit, or I can open a PR if you add this account as a collaborator.