Files
kevinveenbirkenbachandClaude Opus 5 e8a3b6bf3d fix(sys-ctl-rpr-container-hard): do not run the repair during the deploy
Under MODE_DEBUG, sys-service maps SYS_SERVICE_DEFAULT_STATE to 'restarted', so
the role did not merely install and enable the weekly unit - the handler started
it mid-play. Its ExecStart runs files/script.py over DIR_COMPOSITIONS without
--only and with no health filter, i.e. `compose down` + `compose up -d` on every
project on the host, unlike sys-ctl-rpr-container-soft which restarts only
unhealthy or exited ones.

In run 30781723102 that destroyed a matrix stack the role had just proven
healthy: the loopback probe answered 200 from Synapse/1.157.2 at 08:34:20, the
handler ran 08:36:27-08:37:33, and the kill markers list all 17 projects with
matrix at 08:37:12. Because the mdad bootstrap gate gets its marker from a
volume but the synapse unit from the container rootfs, the recreated container
re-ran the full cold bootstrap and was still installing galaxy roles 13 minutes
later, so the readiness probe measured 502 for its entire budget.

system_service_suppress_flush skips only the state task in the handler; the unit
file, the enable and the timer are unaffected, and the repair still runs on its
schedule and via OnFailure. The unit does not reach the sys-service-terminator
either, since the final run list is written only when
system_service_force_flush_final is set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 18:00:39 +02:00
..