mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-27 14:27:10 +00:00
607393e6fa
* fix(s3): expose typed causes for unavailable responses Keep the existing S3 retry contract while distinguishing namespace lock timeouts, other lock refusals, and storage write quorum failures. Reuse one bounded typed-source walk and document multipart session attribution. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com> * fix(s3): preserve XML type on attributed errors Keep application/xml when the pinned serializer replaces generated headers with the custom cause map. Assert the media type on direct and wrapped lock timeouts and namespace/write-quorum error responses. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com> * fix(ecstore): unify multipart generation fence lifetimes Own registry registration before asynchronous incarnation validation so cancellation cannot preserve a memo beyond real lifecycle-lock coverage. Reuse successful validation for overlapping PUT and multipart operations, and retain the full owner through detached part commits and orphan cleanup. Keep cold validation concurrent and preserve authoritative snapshot, borrowed-fence, and disabled-lock checks. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com> * test(ecstore): remove redundant pending closure Pass std::future::pending directly to the incarnation validator in the cancellation regression test so strict Clippy accepts the test target. Co-Authored-By: heihutu <heihutu@gmail.com> Co-Authored-By: zhi22915 <qiuzgang@gmail.com> --------- Co-authored-by: heihutu <heihutu@gmail.com> Co-authored-by: zhi22915 <qiuzgang@gmail.com>