pub enum FenceReason {
Unleased,
Revoked,
TermSuperseded {
lease_term: SupervisorTerm,
current_term: SupervisorTerm,
},
EpochSuperseded {
lease_epoch: OwnershipEpoch,
current_epoch: OwnershipEpoch,
},
Expired {
now_ms: u64,
expires_at_ms: u64,
},
}Expand description
Why a range owner is self-fenced — the cause that revoked its durable-write
authority. Reported by LeasedOwner::evaluate and carried in every
durable-write rejection so an operator (or the owner’s own logs) can see
which binding lapsed.
Variants§
Unleased
The owner holds no lease at all (never granted one, or it was dropped). Catalog ownership without a lease is not authority to write.
Revoked
The Supervisor explicitly revoked the lease before its window closed — e.g. ahead of a planned ownership handoff.
TermSuperseded
The lease was granted under an older Supervisor term than the current one: a new Supervisor leader has been elected, so the lease no longer matches.
EpochSuperseded
The lease’s ownership epoch no longer matches the range’s current epoch: ownership has moved via a transition, fencing this (now stale) owner.
Expired
The lease’s validity window has closed at the current time. With the Supervisor partitioned away the owner cannot renew, so it stops writing the moment the lease lapses.
Trait Implementations§
Source§impl Clone for FenceReason
impl Clone for FenceReason
Source§fn clone(&self) -> FenceReason
fn clone(&self) -> FenceReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FenceReason
impl Debug for FenceReason
Source§impl Display for FenceReason
impl Display for FenceReason
impl Eq for FenceReason
Source§impl Error for FenceReason
impl Error for FenceReason
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for FenceReason
impl PartialEq for FenceReason
Source§fn eq(&self, other: &FenceReason) -> bool
fn eq(&self, other: &FenceReason) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for FenceReason
Auto Trait Implementations§
impl Freeze for FenceReason
impl RefUnwindSafe for FenceReason
impl Send for FenceReason
impl Sync for FenceReason
impl Unpin for FenceReason
impl UnsafeUnpin for FenceReason
impl UnwindSafe for FenceReason
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request