mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-13 14:16:46 +00:00
swarm_stack_ready.sh piped 'docker stack services' through a process substitution, so the timeout wrapper added in 8516e3167 turned a slow or wedged manager into an empty listing, an empty not_running set and exit 0: the convergence gate would have gone green with zero running replicas. Capture the listing, fail on a non-zero rc. That exposed the second half: post_deploy gated the swarm wait on the cluster-wide DEPLOYMENT_MODE, so forced-compose roles (matrix ansible flavor, bigbluebutton) ran it against a stack that does not exist and only passed because the old code swallowed the error. Gate it on compose_mode, like the handlers already do. teardown.sh: the NFS mountpoint and umount calls, the likeliest hang sites, were the only ones left unwrapped, and the timeout around docker inspect inverted the D-state warning (a hung inspect returned 124, the if went false and the script reported a clean teardown). Warn on rc 0 and 124, and shrink the per-node budget so the script fits inside its step timeout. Swarm step budget: the bounded steps alone summed to 365 over a 360-min cap, so cleanup was still starved. Deploy 240, diagnostics 15, playwright 15, rescue 25, cleanup 15. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>