Repository navigation
CI: pull each fixture job's pinned images with bounded retries first - #762
Merged
Merged
Conversation
Main's push run 40164159608 lost 24 fixture jobs at their first container: mirror.gcr.io answered "unknown blob" for the pinned Rust image, and the implicit pull inside `docker run` does not retry. scripts/ci/pull-images.sh pulls each named image up to DW_PULL_ATTEMPTS (4) times, doubling a DW_PULL_BACKOFF_SECONDS (15) wait, and fails the step only after the last attempt. published-sdk-adapters, mysql-execution, postgres-storage and execution-and-codec run it right after checkout for the images every part uses: their Rust image, the matrix database image, the published 2.11.1 Server image and, where bootstrapped, the 2.5.14 layout image. The new test pins that order, that every Rust digest a job runs is in its pull list, and the script's retry, bound, skip and refusal behavior. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age-pull-retry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age-pull-retry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Member
Author
|
Fixtures run 40206210357 attempt 1 had one failure, |
rmcdaniel
added a commit
that referenced
this pull request
Oct 25, 2026
…ock-unsent-poll The path filter and the comparator node test list keep both sides' new tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rmcdaniel
added a commit
that referenced
this pull request
Oct 25, 2026
…dec-one-job The comparator node test list keeps main's image pull test and this branch's codec deadline cell test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 tasks
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.



Main's push run 40164159608 (Oct 25, 05:08Z) lost 24 fixture jobs at once in "Fetch locked Rust dependencies". Their first
docker runcould not pull the pinned Rust image:mirror.gcr.io/library/rust@sha256:ba81bc3e…: … docker: unknown blob(exit 125). Later runs pulled the same digest fine. The implicit pull insidedocker rundoesn't retry, so one brief registry inconsistency failed the whole run.Change
scripts/ci/pull-images.sh IMAGE...: pulls each image up toDW_PULL_ATTEMPTS(4) times. The wait starts atDW_PULL_BACKOFF_SECONDS(15) and doubles after each failure, about 1 min 45 s worst case per image before the step fails. Empty arguments are skipped, and malformed bounds are refused with exit 2. It runs on the host, not inside a container command, so the Docker isolation policy is unaffected.server-parity.yml:published-sdk-adapters,mysql-execution,postgres-storageandexecution-and-codecrun "Pull the pinned images, retrying registry errors" right after checkout. The list is each job's Rust image, its matrix database image ($MYSQL_IMAGE,$POSTGRES_IMAGE), the published 2.11.1 Server image and, where bootstrapped, the 2.5.14 layout image. Images that only one part uses (the upgrade profile's) still pull on first use. The script is added to the push path filter.ServerParityImagePullTest.mjs(new; in the path filter and the comparator list) checks:docker).ServerParityPartsTest.mjslists the pull step among the steps every part runs.Qualification
manifest unknown, thencould not pull … after 2 attempts, exit 1.shellcheckclean; actionlint shows only main's existing 20 shellcheck warnings; Docker workflow isolation policy passes; comparator node tests 2239/2239.composer_trust_test.py,patched_pip_test.pyandbrotli_trust_test.py(Start every Server pip install from the patched, bundle-only pip (GHSA-6q48-6c7w-9gw2) #673's repository inventories) pass on the merged tree. The real-pip bootstrap needs network and runs in CI.No native, shared or frozen implementation changes and no fixture changes.
🤖 Generated with Claude Code