forked from heavy-duty/box
Twice in the 2026-07-19 release drill (Debian 13, Incus 6.x, /dev/kvm present, images cached), the child 'incus launch' under 'box new' wedged with no server-side operation: 'incus operation list' empty, the instance never created, the daemon journal quiet — one wedge ran 56 minutes before being killed by hand, the other was killed by a 540s wrapper. An immediate retry of the identical command succeeded in ~2-3 minutes, both times. box inherited that as an indefinite silent hang, indistinguishable from a cold mint working. The mint now prints "launching instance ..." before the call, and the call rides 'timeout -k 5 $BOX_LAUNCH_TIMEOUT' (seconds, default 600 — generous: the coldest measured mint is minutes, never an hour; overridable the same way BOX_CPU/BOX_MEMORY are), with stdin pinned per drill/RUNS.md trap 13. When the budget fires (124, or 137 when the KILL was needed) the failure says exactly what was measured — the client wedged with no server-side operation, an immediate retry has been observed to succeed — and points at 'box doctor' for host state. A non-timeout launch failure still surfaces incus's own stderr. The --from clone path is untouched: 'incus copy' of a local instance is a different operation and has never been observed to wedge this way. Proven the way the other mint-path guards are (a daemon-free run cannot mint): test/cli.sh greps that the narration orders before the launch, that the launch sits under 'timeout -k' with the BOX_LAUNCH_TIMEOUT budget and pinned stdin, and that the wedge message carries the retry hint, the doctor, and #93 — plus a live shim-incus drive of all three exits (wedge, plain refusal, success) during development. Fixes #93 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| cli.sh | ||
| labels-reconcile.sh | ||
| release.sh | ||