Files
ssmithxandClaude Opus 5.5 ee40ce8f9c fix(lifecycle): hand a long lock wait for start/stop/restart to the background
Yielding between apps was not enough: a single app's reconcile step
(drift checks, hooks, sudo ownership probes) took over 10s on a 2-CPU
test node, so a Stop issued at the start of that step still timed out.
The lifecycle gate hit this in 2 of 5 iterations.

start/stop/restart still try the lock for USER_LOCK_WAIT so errors reach
the UI directly in the common case. If it isn't free by then, the
command is accepted anyway: state flips to Stopping/Starting/Restarting
and the background task waits for the lock (BACKGROUND_LOCK_WAIT, as a
registered waiter so the reconcile pass yields), runs the same
require_clear/require_unheld checks, then does the work. A failure there
reverts the state and is logged like any other background failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:28:19 +00:00
..
2026-10-10 16:43:31 -04:00