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]
