fix(ci): the runner's healthcheck had the same lie as the broker's #5604
ccantynzAI Reviewcommented 1d ago
AI Triage
(no summary)
Priority: medium Risk area: mixed
Suggested labels: (no label suggestions) Suggested reviewers: (no reviewer suggestions)
Suggestions only — nothing has been applied. The PR author stays in control.
gluecron[bot]🤖 botAI Reviewcommented 1d ago
AI review unavailable
The platform's AI balance is exhausted, so AI generation is temporarily unavailable. Nothing was lost. You can queue this as a repair for the internal agent from the repository's Health page, or try again once the balance is restored. The PR is otherwise unchanged.
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
The broker shipped this morning reporting
healthywhile unable to reach the docker socket at all, because its/healthzreturned a constant"ok"(#5603). Having fixed that, I checked whether anything else on the box had the same shape.The runner did. Its one external dependency is the shared checkout volume, and without it every step fails with "the ci-work volume must be mounted at the same path on both services" — while the container reports healthy and the deploy goes green.
Now
/healthzchecks it and answers 503 with the sentence naming the fix.Checked and deliberately NOT changed: the app
Its
/healthzis liveness-only by design and says so, with/readyzdoing the database and repo-mount checks — and autoheal correctly watches liveness, so a Neon blip restarts nothing.That split is right. The lesson does not generalise to "every healthcheck should check everything". The rule it generalises to is narrower:
One deliberate exception
An unconfigured workdir is still reported healthy. A dev machine runs this agent with no volume at all, and reporting that as broken trains people to ignore the check — which costs more than the check is worth.
Mutation-verified: restoring the constant
"ok"fails both tests.