Repository navigation
Retry the Deno install in the deno test image - #1780
Merged
Merged
Conversation
The nightly coverage-docker (deno) job failed on 2026-10-28 because the Deno install script's release-zip download stalled for 14 minutes at 8% and then died with "curl: (56) Connection reset by peer". The script has no retry of its own, so one CDN blip failed the whole image build and turned the nightly CI run red. Wrap the install in the same 3-attempt loop Dockerfile.npm uses for bun, cap each attempt at 5 minutes so a stall still leaves room for a retry inside the job's 30-minute budget, clear the partial ~/.deno between attempts, and require the deno binary to exist before breaking out (a failed fetch of install.sh pipes nothing into sh, which exits 0). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011f9aeRq7topfPoVB2zUn1A
Bugbot is paused — your team has an unpaid invoiceBugbot is paused because your team has an unpaid invoice. Pay it from the billing page in the Cursor dashboard and Bugbot resumes automatically. (requestId: a9744f6c-a3fc-4ee6-a670-2659e0a6580d) |
Collaborator
Author
|
bugbot run Generated by Claude Code |
Bugbot is paused — your team has an unpaid invoiceBugbot is paused because your team has an unpaid invoice. Pay it from the billing page in the Cursor dashboard and Bugbot resumes automatically. (requestId: deb04f54-42f8-4a91-a92a-27f90e25c28f) |
This was referenced Oct 28, 2026
Tanmay Singla (Tanmay182003)
approved these changes
Oct 28, 2026
Mikola Lysenko (mikolalysenko)
deleted the
ci-janitor/deno-image-retry
branch
October 28, 2026 14:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The nightly CI run on main (https://github.com/SocketDev/socket-patch/actions/runs/40639505834) failed
coverage-docker (deno)(job 122656048488): while buildingtests/docker/Dockerfile.deno, the Deno install script's release-zip download stalled for ~14 minutes at 8% and then died withcurl: (56) Recv failure: Connection reset by peer. One CDN blip failed the whole image build, failed the job, and madeci-okred for that run.Docker coverage only runs on schedule / workflow_dispatch /
CI_SCOPE=full, so this doesn't block merges. It's a known flake class (registry/CDN blips in image builds), and it's the only one of today's nightly failures with no open fix.Root cause
curl -fsSL https://deno.land/install.sh | shhas no retry: the script fetches the zip once with its own curl, so a single network failure is fatal.Dockerfile.npmalready retries the bun install for exactly this reason; the Deno install never got the same treatment.Fix
Dockerfile.npmuses for bun.timeout 300, so a stalled download still leaves room for a retry inside the job's 30-minute budget (worst case is about 15.5 minutes). A healthy install takes seconds.rm -rf /root/.denobetween attempts so a partial install can't be left behind./root/.deno/bin/denoto exist before leaving the loop. If fetchinginstall.shitself fails,shgets empty input and exits 0, which would otherwise count as a successful install.Proof
I couldn't build the image in this session: there is no Docker daemon, and the egress proxy blocks deno.land. I checked the loop under
dash, which is the image's/bin/sh, with stub commands in place of the install:exit 56three times: 3 attempts, then exit 1lnruns, exit 0The image is first built by this PR's nightly or full-scope
coverage-docker (deno)/e2e-docker (deno)run.Tests moved or removed
None.
Generated by Claude Code