mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-21 03:46:37 +00:00
fix(scanner): preserve dirty usage convergence (#3844)
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com>
This commit is contained in:
@@ -124,6 +124,10 @@ enum ScannerCycleWakeReason {
|
||||
}
|
||||
|
||||
async fn wait_for_next_scanner_cycle(ctx: &CancellationToken, delay: Duration) -> ScannerCycleWakeReason {
|
||||
if dirty_usage_buckets_pending() {
|
||||
return ScannerCycleWakeReason::DirtyUsage;
|
||||
}
|
||||
|
||||
let sleep = tokio::time::sleep(delay);
|
||||
tokio::pin!(sleep);
|
||||
|
||||
@@ -1624,6 +1628,19 @@ mod tests {
|
||||
crate::scanner_io::clear_dirty_usage_bucket("photos");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[serial]
|
||||
async fn test_wait_for_next_scanner_cycle_sees_existing_dirty_usage() {
|
||||
crate::scanner_io::clear_dirty_usage_bucket("photos");
|
||||
crate::scanner_io::record_dirty_usage_bucket("photos");
|
||||
|
||||
let ctx = CancellationToken::new();
|
||||
let reason = wait_for_next_scanner_cycle(&ctx, Duration::from_secs(60)).await;
|
||||
|
||||
assert_eq!(reason, ScannerCycleWakeReason::DirtyUsage);
|
||||
crate::scanner_io::clear_dirty_usage_bucket("photos");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[serial]
|
||||
fn test_get_cycle_scan_mode_runs_deep_until_selection_window_completes() {
|
||||
|
||||
Reference in New Issue
Block a user