Bug 2367319

Summary: [rgw][cksum] failure to compute/verify checksums with recent aws-go-sdk-v2 versions
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Matt Benjamin (redhat) <mbenjamin>
Component: RGWAssignee: Matt Benjamin (redhat) <mbenjamin>
Status: VERIFIED --- QA Contact: Hemanth Sai <hmaheswa>
Severity: high Docs Contact: Rivka Pollack <rpollack>
Priority: unspecified    
Version: 8.0CC: ceph-eng-bugs, cephqe-warriors, mkasturi, rpollack, tserlin, vereddy
Target Milestone: ---   
Target Release: 8.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ceph-19.2.1-205.el9cp Doc Type: Bug Fix
Doc Text:
.Ceph Object Gateway now recognizes additional checksums from their checksum-type specific headers and trailers Previously, the `aws-sdk-go-v2` checksum behavior differed from other SDKs, as it did not send either `x-amz-checksum-algorithm` or `x-amz-sdk-checksum` and never included `x-amz-decoded-content-length`, despite AWS documentation requiring it. As a result, additional checksums were not recognized when sent, and some AWS-chunked requests failed an assertion check for decoded content length with an `InvalidArgument` error. With this fix, Ceph Object Gateway can now recognize additional checksums from their checksum-type specific header or trailer. Ceph Object Gateway no longer tests and asserts for decoded content length, as it is unnecessary due to chunk signature calculations.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2351689    

Description Matt Benjamin (redhat) 2025-05-19 16:08:26 UTC
Description of problem:

Several upload requests are handled incorrectly (no checksum is generated or validated) when sent with the aws-sdk-go-v2, due to issues with checksum recognition.

In addition, in one scenario an upload fails due to an assertion failure (the golang sdk v2 does not send an x-amz-decoded-content-length header as required here [1] in some aws-chunked transfers with a trailing checksum).

Comment 1 Storage PM bot 2025-05-19 16:08:38 UTC
Please specify the severity of this bug. Severity is defined here:
https://bugzilla.redhat.com/page.cgi?id=fields.html#bug_severity.