Incident (2026-08-25 ~17:57–18:15 UTC, sentry, all 9 instances)
After the 0.1.210 → 0.1.211 apt upgrade every daemon instance came up,
logged exactly one line, and then produced no output and no GitHub
registrations:
[daemon pid=1672781] supervising 9 slot process(es) M=8 surge=1 version=0.1.211
- 50
/usr/bin/velnor-runner slot --state-dir … processes were alive but
inert: zero JIT registration attempts, zero broker polls, zero errors in
daemon.log, lifecycle.log or broker.log for 12+ minutes.
- Slot log files under
/var/lib/velnor-tailrocks/runner/daemons/velnor-tailrocks/slots/*/logs/
stopped advancing at the pre-upgrade timestamp (last write 17:50).
- Estate-wide effect: all velnor-lane CI queued (
actions/runs?status=queued
non-empty across repos).
Suspect range (v0.1.210..v0.1.211): #377 supervised-processes split is the
only behavioral change (3d1ffd3), plus 83a64e9 warm-target fingerprints.
PR #383 ('keep Ready until real GitHub assignment') was already open against
this flow before the incident.
Recovery (worked)
- Mask template
velnor-daemon@.service, stop instances.
velnor-runner release rollback → active record v0.1.210.
- Also downgrade the package — verify-installed correctly refuses to
start a 0.1.211 binary against a v0.1.210 record:
apt-get install --allow-downgrades velnor-runner=0.1.210.
- Unmask + start → slots ready via broker within one poll cycle; queue
drained.
Requested
- Root-cause why supervised slot processes start but never reach the
registration/poll loop on 0.1.211 (no error surfaced anywhere — add a
startup-progress log line per slot process so silence is diagnosable).
- Fix forward, ship as 0.1.212+, and re-run this incident's exact upgrade
path on sentry before declaring done.
- Add a regression gate: an upgrade smoke that asserts at least one slot
reaches 'ready via broker' within N seconds of daemon start.
Incident (2026-08-25 ~17:57–18:15 UTC, sentry, all 9 instances)
After the 0.1.210 → 0.1.211 apt upgrade every daemon instance came up,
logged exactly one line, and then produced no output and no GitHub
registrations:
/usr/bin/velnor-runner slot --state-dir …processes were alive butinert: zero JIT registration attempts, zero broker polls, zero errors in
daemon.log, lifecycle.log or broker.log for 12+ minutes.
/var/lib/velnor-tailrocks/runner/daemons/velnor-tailrocks/slots/*/logs/stopped advancing at the pre-upgrade timestamp (last write 17:50).
actions/runs?status=queuednon-empty across repos).
Suspect range (v0.1.210..v0.1.211): #377 supervised-processes split is the
only behavioral change (
3d1ffd3), plus83a64e9warm-target fingerprints.PR #383 ('keep Ready until real GitHub assignment') was already open against
this flow before the incident.
Recovery (worked)
velnor-daemon@.service, stop instances.velnor-runner release rollback→ active record v0.1.210.start a 0.1.211 binary against a v0.1.210 record:
apt-get install --allow-downgrades velnor-runner=0.1.210.drained.
Requested
registration/poll loop on 0.1.211 (no error surfaced anywhere — add a
startup-progress log line per slot process so silence is diagnosable).
path on sentry before declaring done.
reaches 'ready via broker' within N seconds of daemon start.