pub enum LeaseError {
Held {
agent_id: String,
holder: String,
epoch: u64,
expires_at_ms: u64,
},
Lost {
agent_id: String,
claimed_epoch: u64,
current_epoch: u64,
},
Backend(String),
}Expand description
A lease-coordination failure.
Variants§
Held
LeaseCoordinator::acquire found a still-valid lease held by
another (or the same) device — CAS failed. The proposal: “acquire
succeeds only if unheld or expired.”
Lost
LeaseCoordinator::renew/LeaseCoordinator::release found the
caller is no longer the holder at the claimed epoch — someone stole
it (a higher epoch exists), or it was already released. The
fencing-relevant signal: a zombie that can reach the coordinator
learns here that it lost.
Fields
Backend(String)
The coordinator backend itself failed — a distributed coordinator
(e.g. crate::net_relay::NetworkLeaseCoordinator) could not reach the
lease register or got an unusable reply. Distinct from Held/Lost,
which are legitimate CAS verdicts, not failures. The in-process
InMemoryLeaseCoordinator never returns this.
Trait Implementations§
Source§impl Clone for LeaseError
impl Clone for LeaseError
Source§fn clone(&self) -> LeaseError
fn clone(&self) -> LeaseError
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 LeaseError
impl Debug for LeaseError
Source§impl Display for LeaseError
impl Display for LeaseError
impl Eq for LeaseError
Source§impl Error for LeaseError
impl Error for LeaseError
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()