Skip to content

ci: bound the apt steps and give every job a timeout - #80

Merged
timhartmann7 merged 1 commit into
mainfrom
ci/bound-apt-and-job-timeouts
Aug 19, 2026
Merged

ci: bound the apt steps and give every job a timeout#80
timhartmann7 merged 1 commit into
mainfrom
ci/bound-apt-and-job-timeouts

Conversation

@timhartmann7

Copy link
Copy Markdown
Owner

The post-merge run on main spent 36 minutes in "Install GUI build dependencies" before it was cancelled. The same job takes 4m45s–7m40s normally, and every other job in that run finished in under 2.5 minutes — so this is one stalled mirror, not slow CI.

What happened. The runner image points apt at azure.archive.ubuntu.com, which black-holed connections on that runner. apt's defaults are Acquire::http::Timeout 120s with several retries per repository, so it worked through every repo twice over before falling back to archive.ubuntu.com — which then succeeded. Nothing bounded any of it: neither workflow sets timeout-minutes on a single job or step, so GitHub's six-hour default was the only limit.

Fix.

  • Drop an apt.conf.d snippet before each apt-get updateAcquire::Retries 2, HTTP/HTTPS timeouts 15s — so a dead mirror fails over in seconds instead of minutes. The happy path is unchanged; the Azure mirror is co-located with the runners and stays the first choice.
  • timeout-minutes: 6 on the three apt steps (ci.yml GUI deps, release.yml cross linker and Linux bundle deps).
  • timeout-minutes on every ci.yml job — 10 for the hygiene guard, 30 for the rest, which is well clear of a cold-cache build but ends a stall in minutes rather than hours.

No step's behaviour changes when the network is healthy.

A stalled Azure apt mirror left "Install GUI build dependencies" retrying for 36
minutes before the run was cancelled; the job normally finishes in five. Nothing
bounded it - apt waits two minutes per repository by default and no job in either
workflow set timeout-minutes, so GitHub's six-hour default applied.

Make apt fail over to the next mirror in seconds, cap the three apt steps at six
minutes, and cap each CI job well above a cold-cache run.
@timhartmann7
timhartmann7 merged commit a9c961b into main Aug 19, 2026
5 of 6 checks passed
@timhartmann7
timhartmann7 deleted the ci/bound-apt-and-job-timeouts branch August 19, 2026 05:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant