The Linux workflow's apt step hangs often enough to be a real red-lane cost. Of the last 40 linux.yml runs: 30 success, 7 cancelled, and 6 of those 7 died in Install Linux desktop dependencies (.github/workflows/linux.yml:48-61), each burning the full timeout-minutes: 30 (line 34) before being killed. The seventh was an ordinary supersession.
Cancelled in that step: runs 32228463477, 32224278947, 32176947718, 32169168040, 32168751257, 32166997959.
The step never reaches repo code, so every one of these is a red check on a PR that has nothing to do with it. During #1781 wave 3 it blocked four PRs (#1854, #1859, #1861, #1867) and survived repeated gh run rerun; it is intermittent, not a hard outage — other branches completed the same lane between failures.
sudo apt-get update -qq
sudo apt-get install -y -qq xvfb xdotool scrot at-spi2-core python3-gi \
gir1.2-atspi-2.0 libatk-adaptor dbus-x11 gnome-calculator wmctrl
No retry, no mirror pinning, and -qq hides which package stalls. Options, cheapest first:
- Drop
-qq (or add -o Debug::Acquire::http=true) so the log names the stalling mirror/package instead of ending in silence.
- Add
timeout + a retry around the two apt calls, so a stalled mirror costs seconds rather than 30 minutes.
- Set
Acquire::Retries and/or APT::Acquire::http::Timeout, or pin an alternative mirror.
- Give the step its own short
timeout-minutes so it fails fast and legibly rather than consuming the job budget.
- Cache the package set, or move to a container image that already has them.
Filed from #1781 wave 3, where 'red-lane attention' is an explicit cost line.
The
Linuxworkflow's apt step hangs often enough to be a real red-lane cost. Of the last 40linux.ymlruns: 30 success, 7 cancelled, and 6 of those 7 died inInstall Linux desktop dependencies(.github/workflows/linux.yml:48-61), each burning the fulltimeout-minutes: 30(line 34) before being killed. The seventh was an ordinary supersession.Cancelled in that step: runs
32228463477,32224278947,32176947718,32169168040,32168751257,32166997959.The step never reaches repo code, so every one of these is a red check on a PR that has nothing to do with it. During #1781 wave 3 it blocked four PRs (#1854, #1859, #1861, #1867) and survived repeated
gh run rerun; it is intermittent, not a hard outage — other branches completed the same lane between failures.No retry, no mirror pinning, and
-qqhides which package stalls. Options, cheapest first:-qq(or add-o Debug::Acquire::http=true) so the log names the stalling mirror/package instead of ending in silence.timeout+ a retry around the two apt calls, so a stalled mirror costs seconds rather than 30 minutes.Acquire::Retriesand/orAPT::Acquire::http::Timeout, or pin an alternative mirror.timeout-minutesso it fails fast and legibly rather than consuming the job budget.Filed from #1781 wave 3, where 'red-lane attention' is an explicit cost line.