From 3991a1d73c36449cd7e7f02a6301a377b12f5c05 Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Thu, 30 Jul 2026 08:10:38 +0800 Subject: [PATCH] test(ecstore): stabilize late snapshot lease cleanup (#5456) test(ecstore): wait for late snapshot lease cleanup --- crates/ecstore/src/set_disk/mod.rs | 38 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/crates/ecstore/src/set_disk/mod.rs b/crates/ecstore/src/set_disk/mod.rs index 99accf80e..873837acd 100644 --- a/crates/ecstore/src/set_disk/mod.rs +++ b/crates/ecstore/src/set_disk/mod.rs @@ -5849,23 +5849,27 @@ mod tests { crate::disk::DataDirDeleteStatus::Deleted ); release_slow_candidate.notify_one(); - for _ in 0..10 { - tokio::task::yield_now().await; - } - assert_eq!( - disk2 - .delete_data_dir( - bucket, - data_dir, - DeleteOptions { - recursive: true, - ..Default::default() - }, - ) - .await - .expect("a token acquired after the deadline must be released"), - crate::disk::DataDirDeleteStatus::Deleted - ); + timeout(Duration::from_secs(1), async { + loop { + match disk2 + .delete_data_dir( + bucket, + data_dir, + DeleteOptions { + recursive: true, + ..Default::default() + }, + ) + .await + .expect("a token acquired after the deadline must be released") + { + crate::disk::DataDirDeleteStatus::Deleted => return, + crate::disk::DataDirDeleteStatus::Deferred => tokio::time::sleep(Duration::from_millis(1)).await, + } + } + }) + .await + .expect("late snapshot lease cleanup must finish within the bounded wait"); } #[tokio::test(start_paused = true)]