pub enum LeaderElectionError {
InvalidState(String),
InvalidParticipantId,
ParticipantIdTooLarge {
encoded_size: usize,
limit: usize,
},
InvalidLeaseDuration,
RevisionExhausted,
Fdb(FdbError),
Binding(Box<FdbBindingError>),
PackError(PackError),
}Expand description
Leader-election-specific errors.
LeaderElectionError::Fdb retains the underlying FoundationDB error for
the caller’s transaction runner to classify. The other variants identify
invalid local configuration, unsupported durable data, or a protocol limit.
Variants§
InvalidState(String)
The durable state could not be decoded or violated a protocol invariant.
Do not treat this as an unowned state. It can indicate corrupt data, an incompatible schema, or data written outside this recipe.
InvalidParticipantId
A ParticipantId was empty.
Empty text cannot distinguish a participating process incarnation.
ParticipantIdTooLarge
A ParticipantId exceeds the encoded-size limit.
The limit includes tuple encoding and NUL escaping, so it guarantees the complete durable election state fits below FoundationDB’s value limit.
Fields
InvalidLeaseDuration
A configured lease duration was zero.
A zero duration would make every local validity interval immediately
expired, so super::LeaderElection::new rejects it.
RevisionExhausted
The durable revision reached u64::MAX.
No further ownership transition can create a strictly newer fencing rank in this election subspace.
Fdb(FdbError)
An underlying FoundationDB read, write, or commit-related error occurred.
Inspect the source error and let the enclosing transaction runner apply its normal retry policy where appropriate.
Binding(Box<FdbBindingError>)
A transaction-runner error occurred.
PackError(PackError)
Failed to encode or decode the recipe’s durable tuple state.
On reads this can accompany malformed or incompatible durable data; on writes it prevents staging the requested state change.
Trait Implementations§
Source§impl Debug for LeaderElectionError
impl Debug for LeaderElectionError
Source§impl Display for LeaderElectionError
impl Display for LeaderElectionError
Source§impl Error for LeaderElectionError
impl Error for LeaderElectionError
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
Source§impl From<FdbBindingError> for LeaderElectionError
impl From<FdbBindingError> for LeaderElectionError
Source§fn from(error: FdbBindingError) -> Self
fn from(error: FdbBindingError) -> Self
Source§impl From<FdbError> for LeaderElectionError
impl From<FdbError> for LeaderElectionError
Source§impl From<LeaderElectionError> for FdbBindingError
impl From<LeaderElectionError> for FdbBindingError
Source§fn from(error: LeaderElectionError) -> Self
fn from(error: LeaderElectionError) -> Self
Source§impl From<PackError> for LeaderElectionError
impl From<PackError> for LeaderElectionError
Source§impl RetryableError for LeaderElectionError
The source() chain exposes wrapped FoundationDB errors, so the default
retry decision is transparent to Database::run.
impl RetryableError for LeaderElectionError
The source() chain exposes wrapped FoundationDB errors, so the default
retry decision is transparent to Database::run.