Skip to content

runner 0.1.211: supervised slot processes never register — supervisors log 'supervising' then go silent (rolled back on sentry) #389

Description

@donbeave

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)

  1. Mask template velnor-daemon@.service, stop instances.
  2. velnor-runner release rollback → active record v0.1.210.
  3. 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.
  4. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions