andyhuangdev opened a new pull request, #11931:
URL: https://github.com/apache/ozone/pull/11931

   ## What changes were proposed in this pull request?
   
   Repeating a successful CompleteMultipartUpload request returns 404 
NoSuchUpload on Ozone, while AWS S3 returns success. If the original response 
is lost, a client retry can therefore report failure even though the object was 
created.
   
   This patch stores the upload ID and a digest of the requested parts in the 
completed key’s metadata. Matching retries return the completion result without 
modifying the key or quota. The behavior supports both ordinary and FSO 
buckets. Internal metadata is excluded from S3 response headers.
   
   Retries with a different upload ID or parts list continue to fail. Completed 
uploads from before this change have no retry metadata, and retries after the 
key is overwritten or deleted remain unsupported.
   
   ## What is the link to the Apache JIRA
   
   [HDDS-17659](https://issues.apache.org/jira/browse/HDDS-17659)
   
   ## How was this patch tested?
   
   - Added regression tests first and confirmed that matching retries failed 
with NO_SUCH_MULTIPART_UPLOAD_ERROR.
   - Passed 56 OM tests covering completion requests and responses, including 
FSO, cache and persisted metadata, unchanged key and quota, and invalid retries.
   - Passed 78 S3 Gateway tests covering endpoint behavior and internal 
metadata filtering.
   - Passed the repository Checkstyle script and git diff --check.
   - Manually verified with AWS CLI that AWS S3 returns a successful completion 
result with the same ETag for the repeated request.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to