Summary
The sudo eatmydata apt --yes --quiet -o Acquire::Retries=5 upgrade step in .github/workflows/ci.yml (lines 35, 61, 118, 225, ...) triggers a firefox snap install/upgrade on ubuntu-24.04 runners. When the snap store is slow or unreachable from the runner's network, the install retries for ~50 minutes and then fails with exit code 100, killing every job that runs that step before any LinuxCNC compile happens.
This is at least the second time firefox snap has held PRs back. Recently hit on PR #3990 three times in a row, all jobs running the apt upgrade step failed identically:
ERROR: ld.so: object 'libeatmydata.so' from LD_PRELOAD cannot be preloaded ...
==> Checking connectivity with the snap store
===> Unable to contact the store, trying every minute for the next 30 minutes
===> Still unable to contact the store, trying for another 20 minutes
===> Still unable to contact the store, trying for another 10 minutes
===> Still unable to contact the store, aborting
dpkg: error processing archive .../firefox_1%3a1snap1-0ubuntu5_amd64.deb (--unpack):
E: Sub-process /usr/bin/dpkg returned an error code (1)
##[error]Process completed with exit code 100.
package-arch and package-indep (Debian-based) jobs were unaffected because they do not run on ubuntu-24.04 with apt upgrade.
Affected jobs
rip-and-test
rip-and-test-clang
rip-rtai
htmldocs
Root cause
GitHub Actions ubuntu-24.04 runner images ship firefox as a snap transition package. apt upgrade triggers snap store contact to refresh firefox, which is unreliable from runner VNet.
Proposed fix
Two options:
-
Drop the apt upgrade lines. Build deps install via scripts/travis-install-build-deps.sh already provides what is needed; the upgrade adds little value on ephemeral runners.
-
Sledgehammer: remove firefox before the upgrade.
sudo apt-get remove -y firefox firefox-locale-en firefox-locale-* || true
sudo eatmydata apt --yes --quiet -o Acquire::Retries=5 upgrade
Option 2 is robust and minimally invasive (preserves the upgrade for any genuinely needed package updates). Option 1 is cleaner but risks missing security patches that may matter for a niche test job.
Either fix is ~5 to 10 lines across .github/workflows/ci.yml. Happy to send a PR if a maintainer confirms the preferred approach.
Summary
The
sudo eatmydata apt --yes --quiet -o Acquire::Retries=5 upgradestep in.github/workflows/ci.yml(lines 35, 61, 118, 225, ...) triggers a firefox snap install/upgrade onubuntu-24.04runners. When the snap store is slow or unreachable from the runner's network, the install retries for ~50 minutes and then fails with exit code 100, killing every job that runs that step before any LinuxCNC compile happens.This is at least the second time firefox snap has held PRs back. Recently hit on PR #3990 three times in a row, all jobs running the apt upgrade step failed identically:
package-archandpackage-indep(Debian-based) jobs were unaffected because they do not run on ubuntu-24.04 withapt upgrade.Affected jobs
rip-and-testrip-and-test-clangrip-rtaihtmldocsRoot cause
GitHub Actions
ubuntu-24.04runner images ship firefox as a snap transition package.apt upgradetriggers snap store contact to refresh firefox, which is unreliable from runner VNet.Proposed fix
Two options:
Drop the
apt upgradelines. Build deps install viascripts/travis-install-build-deps.shalready provides what is needed; the upgrade adds little value on ephemeral runners.Sledgehammer: remove firefox before the upgrade.
Option 2 is robust and minimally invasive (preserves the upgrade for any genuinely needed package updates). Option 1 is cleaner but risks missing security patches that may matter for a niche test job.
Either fix is ~5 to 10 lines across
.github/workflows/ci.yml. Happy to send a PR if a maintainer confirms the preferred approach.