mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-13 08:36:54 +00:00
fix(scanner): make distributed usage convergence authoritative (#5151)
* fix(scanner): make distributed usage cycles authoritative * fix(scanner): close distributed refresh races * fix(config): align scanner reload integration * fix(admin): scope config test helpers * fix(scanner): harden distributed usage convergence * fix(scanner): preserve rolling activity compatibility * fix(admin): expose non-secret optional config values * fix(scanner): acknowledge distributed dirty usage * fix(ecstore): make bucket mutations cancellation safe * fix(scanner): preserve pending dirty acknowledgements * test(obs): account for superseded scanner metric * fix(api): reject excess detached bucket mutations * test: close scanner convergence coverage gaps * fix(scanner): make path tracking cleanup one-shot --------- Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com> Co-authored-by: houseme <housemecn@gmail.com>
This commit is contained in:
@@ -128,6 +128,19 @@ impl NamespaceLockGuard {
|
||||
Self::Fast(_) => false,
|
||||
}
|
||||
}
|
||||
|
||||
/// Resolves when a distributed guard loses refresh quorum.
|
||||
///
|
||||
/// Local fast locks cannot lose distributed quorum, so their future remains pending.
|
||||
pub async fn lock_lost_notified(&self) {
|
||||
match self {
|
||||
Self::Standard(guard) => {
|
||||
let signal = guard.lock_lost();
|
||||
signal.notified().await;
|
||||
}
|
||||
Self::Fast(_) => std::future::pending().await,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Namespace lock for managing locks by resource namespaces
|
||||
|
||||
Reference in New Issue
Block a user