[
https://issues.apache.org/jira/browse/HDDS-17572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Attila Doroszlai resolved HDDS-17572.
-------------------------------------
Fix Version/s: 2.3.0
Resolution: Fixed
> CompleteMultipartUpload Calculates Incorrect ETag and PartsCount When
> Completing with a Subset of Uploaded Parts
> ----------------------------------------------------------------------------------------------------------------
>
> Key: HDDS-17572
> URL: https://issues.apache.org/jira/browse/HDDS-17572
> Project: Apache Ozone
> Issue Type: Bug
> Components: S3
> Reporter: Bablu Raul
> Assignee: Gargi Jaiswal
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.3.0
>
>
> When completing an S3 multipart upload using a subset of the uploaded parts,
> Ozone S3 Gateway successfully creates the object with the correct content but
> calculates the ETag and reports {{PartsCount}} based on all uploaded parts
> rather than only the parts included in the {{CompleteMultipartUpload}}
> request.
> h3. Steps to Reproduce
> # Create an S3 bucket and initiate a multipart upload.
> # Create and upload three parts, each 5 MiB in size (Part 1, Part 2, and
> Part 3).
> # Run {{ListParts}} and verify that all three parts are uploaded
> successfully.
> # Complete the multipart upload using only Part 1 and Part 3, intentionally
> excluding Part 2.
> # Run {{HeadObject}} and inspect the {{{}ETag{}}}, {{{}ContentLength{}}},
> and {{{}PartsCount{}}}.
> # Download the completed object and verify its content.
> h3. Actual Result
> * {{CompleteMultipartUpload}} succeeds when the request contains only Parts
> 1 and 3.
> * The completed object has the expected {{ContentLength}} of 10 MiB
> (10485760 bytes).
> * The downloaded object contains the contents of Parts 1 and 3, confirming
> that Part 2 is excluded.
> * {{HeadObject}} reports {{PartsCount: 3}} instead of {{{}2{}}}.
> * The returned ETag is {{{}1ecf792aa5bbae8b9206c49a31a86a3a-3{}}}, which
> matches the calculation using all three uploaded part ETags rather than only
> Parts 1 and 3.
> h3. Expected Result
> * {{CompleteMultipartUpload}} should calculate the completed object's
> metadata using only the parts specified in the completion request.
> * {{ContentLength}} should be 10485760 bytes.
> * {{PartsCount}} should be {{{}2{}}}.
> * The multipart ETag should be calculated using only the ETags of Parts 1
> and 3, following the S3 multipart ETag calculation rules.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]