From f2bb215ce5cf285ffe4b71afe0cdb85834dcc6a6 Mon Sep 17 00:00:00 2001 From: DEVN Date: Thu, 15 Oct 2026 02:10:47 -0700 Subject: [PATCH] serve s3: upgrade gofakes3 to v0.0.11 to fix IsTruncated and Docker Distribution Registry gofakes3 prior to v0.0.11 defined the IsTruncated XML field in ListMultipartUploadsResult and ListMultipartUploadPartsResult with `xml:"IsTruncated,omitempty"`. When an upload result was not truncated (IsTruncated == false), the tag was omitted from the XML response. According to the AWS S3 REST API specifications for ListParts and ListMultipartUploads, IsTruncated is a required boolean element. Strict S3 clients such as the official AWS Go SDK (used by Docker Distribution and OCI registries) unmarshal this field as a *bool pointer. Because the tag was omitted, the pointer remained nil, causing Docker Distribution to panic with a nil-pointer dereference at s3.go:593 (for *resp.IsTruncated) during multi-chunk blob uploads. Updating github.com/rclone/gofakes3 to v0.0.11 brings in rclone/gofakes3#22, which removes omitempty and ensures false is always present in the response XML. Fixes #10078 --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 72e027c28..53f18a4d5 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/quasilyte/go-ruleguard/dsl v0.3.23 github.com/rclone/Proton-API-Bridge v1.0.5 github.com/rclone/go-proton-api v1.0.4 - github.com/rclone/gofakes3 v0.0.10 + github.com/rclone/gofakes3 v0.0.11 github.com/rfjakob/eme v1.2.0 github.com/rivo/uniseg v0.4.7 github.com/rogpeppe/go-internal v1.15.0 diff --git a/go.sum b/go.sum index b6b8a8a71..a6f16ebb7 100644 --- a/go.sum +++ b/go.sum @@ -494,8 +494,8 @@ github.com/rclone/Proton-API-Bridge v1.0.5 h1:K1++Qtk3PvgkiCCiv6Pahju1TMOzKY6VSw github.com/rclone/Proton-API-Bridge v1.0.5/go.mod h1:vCeOPhlXzevN0AFojgh1zsjhetiShy/ArvJ/xkFUDWk= github.com/rclone/go-proton-api v1.0.4 h1:AJW0e9pB4j0hVK4WqyGErFwaI+5MUQWPCtj5FYYxtPg= github.com/rclone/go-proton-api v1.0.4/go.mod h1:QAlkFfswzrBuxvCORWV8rZdddg52hahMN98CFWoFW1E= -github.com/rclone/gofakes3 v0.0.10 h1:LIwNoz4PzpldElhyC7+SI4WwZmytlwoFky6AzTTe5B8= -github.com/rclone/gofakes3 v0.0.10/go.mod h1:0udb2hmIO9mHXDAgcdycCzSPPASAGIz410t+m0LKmnE= +github.com/rclone/gofakes3 v0.0.11 h1:HvdX1ClCce4qgvgxuyQViM/nkoydSM1TNbO+ndkfn/A= +github.com/rclone/gofakes3 v0.0.11/go.mod h1:0udb2hmIO9mHXDAgcdycCzSPPASAGIz410t+m0LKmnE= github.com/relvacode/iso8601 v1.7.0 h1:BXy+V60stMP6cpswc+a93Mq3e65PfXCgDFfhvNNGrdo= github.com/relvacode/iso8601 v1.7.0/go.mod h1:FlNp+jz+TXpyRqgmM7tnzHHzBnz776kmAH2h3sZCn0I= github.com/rfjakob/eme v1.2.0 h1:8dAHL+WVAw06+7DkRKnRiFp1JL3QjcJEZFqDnndUaSI=