Skip to content

remote: retry failed Puller and Pusher initialization - #2406

Merged
Subserial merged 3 commits into
google:mainfrom
iahsanGill:codex/remote-retry-failed-init
Aug 18, 2026
Merged

Subserial merged 3 commits into
google:mainfrom
iahsanGill:codex/remote-retry-failed-init

Conversation

@iahsanGill

Copy link
Copy Markdown
Contributor

A failed Puller or Pusher initialization is retained by sync.Once, so a transient context, authentication, or transport error poisons the reusable client.

Delete only the failed cached reader or writer with CompareAndDelete, allowing the next request to initialize it again without removing a concurrent replacement. This adds retry regressions for both paths.

Fixes #2060

Tests:

  • ./hack/presubmit.sh
  • go test -race ./pkg/v1/remote -count=1

@codecov-commenter

codecov-commenter commented Aug 18, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.57%. Comparing base (4cb3583) to head (29cf637).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2406      +/-   ##
==========================================
+ Coverage   57.44%   57.57%   +0.12%     
==========================================
  Files         166      166              
  Lines       11558    11564       +6     
==========================================
+ Hits         6640     6658      +18     
+ Misses       4138     4127      -11     
+ Partials      780      779       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Subserial

Copy link
Copy Markdown

Approved, but it looks like the change has some linter errors.

@iahsanGill

Copy link
Copy Markdown
Contributor Author

Updated the part which was failing.

@iahsanGill
iahsanGill requested a review from Subserial August 18, 2026 20:13
@Subserial
Subserial merged commit 66dd454 into google:main Aug 18, 2026
20 of 21 checks passed
Subserial pushed a commit to Subserial/go-containerregistry that referenced this pull request Aug 18, 2026
Subserial pushed a commit to Subserial/go-containerregistry that referenced this pull request Aug 18, 2026
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
crane 0.22.0

Created-by: HarmonybrewBot
Commit-by: HarmonybrewBot
Merged-by: HarmonybrewBot
Description: Created by `brew bump`

---

Created with `brew bump-formula-pr`.<details>
  <summary>release notes</summary>
  <pre>## What's Changed
* mutate: let Time and Canonical take tarball.LayerOption by @mzihlmann in google/go-containerregistry#2403
* build: add multi-architecture Cloud Build configurations for crane, gcrane, and krane by @tprussak in google/go-containerregistry#2412
* remote: resolve push-check credentials against the repository by @mzihlmann in google/go-containerregistry#2411
* Allow single-character repository paths by @semx in google/go-containerregistry#2407
* fix: add missing substitutions and workspace cleanup to new build files by @tprussak in google/go-containerregistry#2413
* remote: retry failed Puller and Pusher initialization by @iahsanGill in google/go-containerregistry#2406
* build(deps): bump the actions group across 1 directory with 8 updates by @dependabot[bot] in google/go-containerregistry#2405
* build(deps): bump the go-deps group across 1 directory with 3 updates by @dependabot[bot] in google/go-containerregistry#2415
* go.mod: bump Go version + add toolchain directive to replace .go-version file by @Subserial in google/go-containerregistry#2416
* fix: Fix new build options and provenance by @tprussak in google/go-containerregistry#2417
* fix(build): unify new build flow into cloudbuild_v2.yaml by @tprussak in google/go-containerregistry#2419

## New Contributors
* @mzihlmann made their first contribution in google/go-containerregistry#2403
* @tprussak made their first contribution in google/go-containerregistry#2412
* @semx made their first contribution in google/go-containerregistry#2407

**Full Changelog**: https://github.com/google/go-containerregistry/compare/v0.21.9...v0.21.10</pre>
  <p>View the full release notes at <a href="https://github.com/google/go-containerregistry/releases/tag/v0.22.0">https://github.com/google/go-containerregistry/releases/tag/v0.22.0</a>.</p>
</details>
<hr>

See merge request: Harmonybrew/homebrew-core!17674
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.

issue with caching "bad" fetchers in Puller/Pusher

3 participants