Summary
The nightly updater replaces ~/.local/bin/cm but leaves the acfs-svc CM server running the old, deleted executable. The drift warning from #381 reports it correctly, but nothing acts on it, so on a host where cm updates most nights the CM server is almost never on the installed version. #381 chose "nothing is restarted automatically" as the default, and that is a sound default. This asks for an opt-in.
Field evidence (ACFS nightly, 2026-10-16 04:04 local)
SERVICE BINARY DRIFT: cm: pid 2038844 runs a deleted executable (/home/ubuntu/.local/bin/cm); installed: /home/ubuntu/.local/bin/cm (sha256 06e1563881f8)
Restart just this service: acfs services restart cmThe previous night produced the same warning. A manual acfs services restart cm fixed it each time, and the next nightly undid it.
Request
An opt-in setting, for example ACFS_NIGHTLY_RESTART_SERVICES=cm in the nightly unit environment. With it set, at the end of a nightly run the updater runs acfs services restart <svc> only for the listed services that _service_binary_drift flags. It reports each restart in the summary. Default unset keeps today's behavior.
Using the existing drift check keeps a quiet night quiet: no cm update means no restart.
Workaround we run meanwhile
A user drop-in on acfs-nightly-update.service with a warn-only ExecStopPost=- script. It runs acfs services restart cm only when the cm serve --port 8766 process's /proc/<pid>/exe ends in (deleted). We remove it once the updater can do this itself.
Activity
1This issue was closed as completed.
Thanks, this is a reasonable opt-in, and keeping report-only as the default is right. The prepared change adds
ACFS_UPDATE_RESTART_SERVICES(for examplecmorcm,cass). At the end ofacfs update, a listed service is restarted only when the existing drift check reports it stale, so a quiet night stays quiet. The restart goes throughacfs services restart <name>, which checks the replacement binary before stopping anything, and is then confirmed with the same drift check and reported. A name that isn't a managed service is reported and restarts nothing. To limit it to the nightly run, set it in a drop-in foracfs-nightly-update.service, much like your current workaround. It will land after the current release work, and I'll close this then.