pub struct DoctorOpts {
pub delete_bundle: bool,
pub lock_ttl_seconds: Option<u64>,
pub delete_stale_locks: bool,
pub engine: StorageEngine,
}Expand description
Tunables for Doctor::run.
Fields§
§delete_bundle: boolWhen true, fix_multiple_bundles deletes the losing bundles
outright. When false (default), they are quarantined to a
fresh <ref>_<uuid8> ref so a human can recover them later.
lock_ttl_seconds: Option<u64>Locks older than this TTL are considered stale. None falls
back to [crate::protocol::push::lock_ttl_from_env] which
honours GIT_REMOTE_OBJECT_STORE_LOCK_TTL_SECONDS (defaulting
to crate::protocol::push::DEFAULT_LOCK_TTL_SECONDS when
unset). An explicit
Some(n) — including Some(0) — passes through unchanged:
doctor only compares lock ages, it never acquires a lock, so
--lock-ttl-seconds 0 is a deliberate “treat every lock as
stale” request rather than a footgun. The push and compact
paths, which DO acquire locks, route through
[crate::protocol::push::resolve_lock_ttl_seconds] for the
zero-clamp that protects them.
delete_stale_locks: boolWhen true, scanned stale locks are deleted; otherwise, the
doctor only reports them and recommends re-running with the
flag.
engine: StorageEngineEngine resolved from the bucket’s FORMAT key. Drives
engine-aware reporting: a Packchain value enables the
orphan / tombstone / compaction / dangling-reference section.
Bundle remotes see the existing report unchanged.
Trait Implementations§
Source§impl Clone for DoctorOpts
impl Clone for DoctorOpts
Source§fn clone(&self) -> DoctorOpts
fn clone(&self) -> DoctorOpts
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for DoctorOpts
Source§impl Debug for DoctorOpts
impl Debug for DoctorOpts
Auto Trait Implementations§
impl Freeze for DoctorOpts
impl RefUnwindSafe for DoctorOpts
impl Send for DoctorOpts
impl Sync for DoctorOpts
impl Unpin for DoctorOpts
impl UnsafeUnpin for DoctorOpts
impl UnwindSafe for DoctorOpts
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more