Skip to content

CI: apt upgrade triggers firefox snap install, blocks PRs intermittently #3991

@grandixximo

Description

@grandixximo

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:

  1. 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.

  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions