revert(ecstore): drop pool-meta bootstrap change from test PR

Distributed e2e must observe current server behavior, including the
localhost pool.bin write fence. Restore combine_across_pools to the
equality merge on origin/main.

Co-authored-by: RustFS <hello@rustfs.com>
This commit is contained in:
Cursor Agent
2026-09-04 15:35:14 +00:00
parent f878a53e80
commit 7f15ac86c3
2 changed files with 2 additions and 30 deletions
+1 -29
View File
@@ -4407,19 +4407,8 @@ pub(crate) enum PoolMetaBootstrapAuthority {
}
impl PoolMetaBootstrapAuthority {
/// Merge per-pool format-load proofs into one cluster bootstrap proof.
///
/// `None` means this pool did not prove bootstrap itself: it loaded an
/// already-written `format.json`, usually formatted by that pool's first-disk
/// peer. That must not cancel a `Fresh` or `LegacyAdoption` proof from another
/// pool. Two different proven authorities still collapse to `None`.
pub(crate) fn combine_across_pools(self, other: Self) -> Self {
match (self, other) {
(Self::None, proven) | (proven, Self::None) => proven,
(Self::Fresh, Self::Fresh) => Self::Fresh,
(Self::LegacyAdoption, Self::LegacyAdoption) => Self::LegacyAdoption,
(Self::Fresh, Self::LegacyAdoption) | (Self::LegacyAdoption, Self::Fresh) => Self::None,
}
if self == other { self } else { Self::None }
}
fn is_proven(self) -> bool {
@@ -4427,23 +4416,6 @@ impl PoolMetaBootstrapAuthority {
}
}
#[cfg(test)]
mod bootstrap_authority_combine_tests {
use super::PoolMetaBootstrapAuthority::*;
#[test]
fn none_does_not_cancel_a_proven_pool() {
assert_eq!(Fresh.combine_across_pools(None), Fresh);
assert_eq!(None.combine_across_pools(Fresh), Fresh);
assert_eq!(LegacyAdoption.combine_across_pools(None), LegacyAdoption);
assert_eq!(None.combine_across_pools(LegacyAdoption), LegacyAdoption);
assert_eq!(Fresh.combine_across_pools(Fresh), Fresh);
assert_eq!(None.combine_across_pools(None), None);
assert_eq!(Fresh.combine_across_pools(LegacyAdoption), None);
assert_eq!(LegacyAdoption.combine_across_pools(Fresh), None);
}
}
impl PoolMetaWriteState {
#[cfg(test)]
pub(crate) fn for_startup(cluster_id: uuid::Uuid, fresh_bootstrap_proven: bool) -> Self {
+1 -1
View File
@@ -15,7 +15,7 @@ The in-tree harness runs every node on `127.0.0.1` with a distinct port. That ma
A pool striped across several localhost ports is not expressible (`RUSTFS_VOLUMES` host ellipses would collide on disk paths). Multi-host striped pools remain the hardware functional-chain / backlog #1313 / #1314 lane.
Decommission and rebalance POST currently 500 on localhost DistErasure multi-pool when pool.bin writes are fenced (`pool metadata writes remain blocked` / missing fleet capability proof). Those cases still assert object bytes and SHA-256; when the API starts they wait for completion and assert post-move integrity. They do not treat the fence as a successful move.
Decommission and rebalance POST currently 500 on localhost DistErasure multi-pool when pool.bin writes are fenced (`pool metadata writes remain blocked` / missing fleet capability proof). Those cases still assert object bytes and SHA-256; when the API starts they wait for completion and assert post-move integrity. They do not treat the fence as a successful move. This lane does not change production pool-meta bootstrap or write-fence logic; it only observes the current server behavior.
## What this lane covers