fix(ecstore): require durable decommission ledger format (#6871)

This commit is contained in:
cxymds
2026-08-30 08:47:09 +08:00
committed by GitHub
parent 1e8c8d4cd5
commit 21e5b3dc64
7 changed files with 382 additions and 16 deletions
@@ -1667,6 +1667,8 @@ mod tests {
async fn assert_real_activation_start_race(paused_kind: PoolActivationStartKind) {
let (_temp_dirs, rebalance_store, decommission_store) =
crate::services::rebalance::test_two_pool_stores_with_isolated_node_contexts(None).await;
crate::services::rebalance::promote_test_pool_meta_to_v2(&rebalance_store).await;
crate::services::rebalance::promote_test_pool_meta_to_v2(&decommission_store).await;
let disk_stats = vec![
DiskStat {
total_space: 100,
@@ -111,6 +111,17 @@ pub(crate) async fn test_two_pool_stores_with_isolated_node_contexts(
test_two_pool_stores_with_contexts(rebalance_meta, true).await
}
#[cfg(test)]
pub(crate) async fn promote_test_pool_meta_to_v2(store: &std::sync::Arc<crate::store::ECStore>) {
let mut pool_meta = store.pool_meta.read().await.clone();
pool_meta.version = crate::core::pools::POOL_META_VERSION;
pool_meta
.save(store.pools.clone())
.await
.expect("test pool metadata should be promoted to V2");
*store.pool_meta.write().await = pool_meta;
}
#[cfg(test)]
async fn test_two_pool_stores_with_contexts(
rebalance_meta: Option<RebalanceMeta>,