From 03888bd2661da8cc5b0012f6769dd7c4fa7e94f9 Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Fri, 28 Aug 2026 07:35:48 +0800 Subject: [PATCH] chore(tier): remove dead trailing_headers config from warm backends (#6762) TransitionClient::new() in crates/s3-client/src/transition_api.rs computes trailing_header_support = opts.trailing_headers && override_signer_type == SignatureV4, but override_signer_type is hardcoded to SignatureDefault at construction and never mutated afterwards, so the expression is always false regardless of opts.trailing_headers. The resulting field also has no live reader: its only reference is inside PutObjectOptions::validate() in crates/s3-client/src/api_put_object.rs, which is itself #[allow(dead_code, reason = "MinIO-parity ... no caller in this port")], and even there the reference to trailing_header_support is commented out. So trailing_headers: true in the seven warm_backend_*.rs constructors has never had any effect on request signing or chunked/trailing-header behavior (stream_sha256 signing is gated separately by metadata.stream_sha256 && !self.secure). Remove the misleading dead configuration from the seven provider constructors so it doesn't look like intentional, load-bearing behavior to future readers. Found during adversarial self-check while implementing rustfs/backlog#2040 (out of that issue's scope). --- crates/ecstore/src/services/tier/warm_backend_aliyun.rs | 1 - crates/ecstore/src/services/tier/warm_backend_azure.rs | 1 - crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs | 1 - crates/ecstore/src/services/tier/warm_backend_minio.rs | 1 - crates/ecstore/src/services/tier/warm_backend_r2.rs | 1 - crates/ecstore/src/services/tier/warm_backend_rustfs.rs | 1 - crates/ecstore/src/services/tier/warm_backend_tencent.rs | 1 - 7 files changed, 7 deletions(-) diff --git a/crates/ecstore/src/services/tier/warm_backend_aliyun.rs b/crates/ecstore/src/services/tier/warm_backend_aliyun.rs index 410913c14..f0d9e4712 100644 --- a/crates/ecstore/src/services/tier/warm_backend_aliyun.rs +++ b/crates/ecstore/src/services/tier/warm_backend_aliyun.rs @@ -68,7 +68,6 @@ impl WarmBackendAliyun { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), bucket_lookup: BucketLookupType::BucketLookupDNS, ..Default::default() diff --git a/crates/ecstore/src/services/tier/warm_backend_azure.rs b/crates/ecstore/src/services/tier/warm_backend_azure.rs index 61b3d2e9e..4779e6fa5 100644 --- a/crates/ecstore/src/services/tier/warm_backend_azure.rs +++ b/crates/ecstore/src/services/tier/warm_backend_azure.rs @@ -68,7 +68,6 @@ impl WarmBackendAzure { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), bucket_lookup: BucketLookupType::BucketLookupDNS, ..Default::default() diff --git a/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs b/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs index 4e0900fd9..69a176861 100644 --- a/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs +++ b/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs @@ -68,7 +68,6 @@ impl WarmBackendHuaweicloud { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), bucket_lookup: BucketLookupType::BucketLookupDNS, ..Default::default() diff --git a/crates/ecstore/src/services/tier/warm_backend_minio.rs b/crates/ecstore/src/services/tier/warm_backend_minio.rs index 8205a3e56..0ba037532 100644 --- a/crates/ecstore/src/services/tier/warm_backend_minio.rs +++ b/crates/ecstore/src/services/tier/warm_backend_minio.rs @@ -68,7 +68,6 @@ impl WarmBackendMinIO { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), ..Default::default() }; diff --git a/crates/ecstore/src/services/tier/warm_backend_r2.rs b/crates/ecstore/src/services/tier/warm_backend_r2.rs index 685c3338e..9784537ba 100644 --- a/crates/ecstore/src/services/tier/warm_backend_r2.rs +++ b/crates/ecstore/src/services/tier/warm_backend_r2.rs @@ -68,7 +68,6 @@ impl WarmBackendR2 { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), ..Default::default() }; diff --git a/crates/ecstore/src/services/tier/warm_backend_rustfs.rs b/crates/ecstore/src/services/tier/warm_backend_rustfs.rs index dc1f4aec5..33a10e93b 100644 --- a/crates/ecstore/src/services/tier/warm_backend_rustfs.rs +++ b/crates/ecstore/src/services/tier/warm_backend_rustfs.rs @@ -65,7 +65,6 @@ impl WarmBackendRustFS { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), ..Default::default() }; diff --git a/crates/ecstore/src/services/tier/warm_backend_tencent.rs b/crates/ecstore/src/services/tier/warm_backend_tencent.rs index 3d7e856e4..98376b68d 100644 --- a/crates/ecstore/src/services/tier/warm_backend_tencent.rs +++ b/crates/ecstore/src/services/tier/warm_backend_tencent.rs @@ -68,7 +68,6 @@ impl WarmBackendTencent { let opts = Options { creds, secure: u.scheme() == "https", - trailing_headers: true, region: conf.region.clone(), bucket_lookup: BucketLookupType::BucketLookupDNS, ..Default::default()