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§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()