Skip to content

fix: make Chrome download visible and fail-fast instead of hanging#861

Merged
noah-duncan merged 1 commit into
mainfrom
fix/chrome-download-timeout-visibility
Jun 9, 2026
Merged

fix: make Chrome download visible and fail-fast instead of hanging#861
noah-duncan merged 1 commit into
mainfrom
fix/chrome-download-timeout-visibility

Conversation

@rdoria1

@rdoria1 rdoria1 commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Problem

The Chrome .deb download in the Dockerfile uses wget -q with no timeout:

RUN wget -q https://mirror.cs.uchicago.edu/.../google-chrome-stable_134.0.6998.88-1_amd64.deb

With -q there is no log output, and with no timeout a stalled connection from a CI runner hangs the build step indefinitely (observed 40+ min vs the usual ~7-8 min) instead of failing or recovering.

Change

RUN wget --progress=dot:giga --timeout=30 --tries=3 https://mirror.cs.uchicago.edu/.../google-chrome-stable_134.0.6998.88-1_amd64.deb
  • --progress=dot:giga — replaces -q so download progress (%, speed) is visible in CI logs. Dot mode is used because the default progress bar needs a TTY and won't render in CI; giga scale (~1 MB/dot) keeps the output compact for the ~109 MB file.
  • --timeout=30 --tries=3 — a stalled connection now hits an idle timeout, drops, and retries with a fresh connection instead of hanging.

Same URL, same pinned version, same sha256 verification — only the download behavior changes. No functional change to the image.

Scope / follow-up

This is a resilience + observability improvement, not a root-cause fix. The underlying fragility is depending on a single mirror that can be slow/unreachable from CI runners. --timeout is an idle timeout, so it catches hard stalls and (via --tries) recovers from them, but it will not abort a slow-but-progressing trickle. A fuller fix (a more reliable source, or a curl total/min-speed limit) can follow if needed.

@rdoria1 rdoria1 requested a review from a team as a code owner June 9, 2026 19:47
The Chrome .deb download used `wget -q` with no timeout, so a slow or
stalled mirror connection produced no log output and could hang the
build for a very long time instead of failing.

- Drop `-q` and add `--progress=dot:giga` so download progress is
  visible in CI logs
- Add `--timeout=30 --tries=3` so a stalled connection fails fast and
  retries instead of hanging
@rdoria1 rdoria1 force-pushed the fix/chrome-download-timeout-visibility branch from d958841 to 69c911a Compare June 9, 2026 20:34

@noah-duncan noah-duncan left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @rdoria1

@noah-duncan noah-duncan merged commit c275266 into main Jun 9, 2026
10 checks passed
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.

2 participants