ci: put a clock on every job - #478
Merged
Merged
Conversation
Not one job carried timeout-minutes, so each of them was free to wait out GitHub's six-hour default. On 2026-08-18 one did: the runner's Ubuntu mirror stopped answering during `playwright install --with-deps` in the smoke job, apt fell back to archive.ubuntu.com, fetched the release files and sat there. Six hours of a runner, and nobody told about it until the timeout killed it. Whether a mirror answers is not ours to decide. How long we wait to hear that it did not is. Each job now gets roughly three times what it has been taking, so a stall is reported in minutes while a slow but healthy run never trips it: ten minutes for the linters, fifteen to thirty for the builds and the wiki jobs, an hour for the static binary. The three jobs that call a reusable workflow are left alone, since a job with `uses:` cannot carry the key; they take the timeout of the job they call. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uv1RzRurUH6wrgV5E9PESQ
Contributor
OpenTofu Plan |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not one job in this repository carried
timeout-minutes, so each of them was free to wait out GitHub's six-hour default. On 2026-08-18 one did.What happened
The
smokejob on #469 ran for six hours and was killed by the platform. It did not fail — it stalled, inplaywright install --with-deps, which runs apt. The runner's Ubuntu mirror stopped answering:apt fell back to
archive.ubuntu.com, fetched the release files, and then produced nothing for the next five hours and fifty-five minutes. The orphan the runner reaped on the way out names the culprit:Whether a mirror answers is not ours to decide. How long we wait to hear that it did not is.
What this changes
Every job gets roughly three times what it has been taking, so a stall is reported in minutes while a slow but healthy run never trips it.
semantic-pull-requestcaddy,check-translations,deploy-pages,release-please,preparephpunit,plan,updatecliphan,coverage,preview,docker-image,smoke,publishbinaryThe rationale lives in
smoke.yml, next to the job that earned it, rather than repeated fourteen times.Not changed
The three jobs that call a reusable workflow —
nightly.yml'sbinary,release-please.yml'sbinaryanddocker— are left alone. A job withuses:cannot carrytimeout-minutes; they take the timeout of the job they call, whichbinary.ymlanddocker-image.ymlnow have.This does not stop the stall, and it is not a retry. It is only the difference between hearing about one in twenty minutes and in six hours.
Checked
uv run --frozen --group lint yamllint --strict .passes, which is the command theyamllintjob runs.Generated by Claude Code