Skip to content

Fix multiarch image push in docker engine#15548

Merged
kgodara912 merged 3 commits into3.0-devfrom
kkaitepalli/fix-multiarch-imagepush
Mar 25, 2026
Merged

Fix multiarch image push in docker engine#15548
kgodara912 merged 3 commits into3.0-devfrom
kkaitepalli/fix-multiarch-imagepush

Conversation

@KavyaSree2610
Copy link
Copy Markdown
Contributor

@KavyaSree2610 KavyaSree2610 commented Jan 21, 2026

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?

ICM: https://portal.microsofticm.com/imp/v5/incidents/details/666786675/summary

This PR backports an upstream Docker fix to moby-engine 25.0.3 that resolves an Azure Container Registry geo-replication inconsistency issue.

The bug causes all image layers to be pushed with the same vars_reference value (the image tag) instead of unique layer digests. This leads to race conditions during concurrent pushes, resulting in last-writer-wins behavior and tag-to-digest mismatches across geo-replicated regions. Customers experience images being available in one region but missing or corrupted in others.

The fix ensures each layer is pushed with its unique SHA256 digest as the vars_reference, enabling reliable geo-replication across ACR regions.

Upstream reference: moby/moby#49949

Change Log
  • Fix multiarch image push in docker engine
Does this affect the toolchain?

NO

Associated issues
Links to CVEs
Test Methodology

@KavyaSree2610 KavyaSree2610 requested a review from a team as a code owner January 21, 2026 08:18
@microsoft-github-policy-service microsoft-github-policy-service bot added Packaging 3.0-dev PRs Destined for AzureLinux 3.0 labels Jan 21, 2026
@KavyaSree2610 KavyaSree2610 changed the title Fix multiarch image push in docker Fix multiarch image push in docker engine Jan 22, 2026
Copy link
Copy Markdown
Member

@mfrw mfrw left a comment

Choose a reason for hiding this comment

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

I think we should get a few more folks to take a look :)

@KavyaSree2610 KavyaSree2610 force-pushed the kkaitepalli/fix-multiarch-imagepush branch from 1c6f30d to 9ef4f64 Compare March 11, 2026 03:06
Copy link
Copy Markdown
Member

@mfrw mfrw left a comment

Choose a reason for hiding this comment

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

LGTM :)

@cpuguy83
Copy link
Copy Markdown

We merged the patch upstream in the v25 branch: moby/moby#52169
No ETA on a release date with the patch.

@KavyaSree2610 KavyaSree2610 added the ready-for-stable-review PR has passed initial review and is now ready for a second-level stable maintainer review label Mar 13, 2026
@KavyaSree2610
Copy link
Copy Markdown
Contributor Author

PR check failing is not related

Copy link
Copy Markdown
Contributor

@kgodara912 kgodara912 left a comment

Choose a reason for hiding this comment

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

The patch matches with upstream version of patch and also the patch is merged for our current branch of moby-engine in upstream as well by the author. Buddy build is successful. The follow-ups in upstream patch are already verified by the author, and they are not required for the current version of moby-engine in Azure Linux. LGTM.

@kgodara912 kgodara912 merged commit d4e00c6 into 3.0-dev Mar 25, 2026
24 of 27 checks passed
@kgodara912 kgodara912 deleted the kkaitepalli/fix-multiarch-imagepush branch March 25, 2026 16:47
BinduSri-6522866 pushed a commit to BinduSri-6522866/azurelinux that referenced this pull request Mar 31, 2026
Co-authored-by: Kavya Sree Kaitepalli <kkaitepalli@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.0-dev PRs Destined for AzureLinux 3.0 Packaging ready-for-stable-review PR has passed initial review and is now ready for a second-level stable maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants