pub enum RollbackError {
WatermarkViolation {
common_point: u64,
commit_watermark: u64,
},
TailPersistFailed {
reason: String,
},
RecoverFailed {
target_lsn: u64,
reason: String,
},
}Expand description
Why an auto-rollback could not complete.
Variants§
WatermarkViolation
The common point is below the commit watermark, so recovering to it would roll back committed data. Refused — nothing was changed. This should never happen given the election vote rule (ADR 0030); if it does, the cluster has a deeper consistency fault that needs an operator, not a silent data loss.
TailPersistFailed
The divergent tail could not be persisted to a rollback file. Recovery aborted before removing anything: rollback is never silent, so if the tail cannot be preserved it is not discarded.
RecoverFailed
The recover-to-LSN over the MVCC history store failed. The tail was already preserved to a rollback file, but the live timeline was not rolled back; the node must not rejoin until an operator resolves it.
Trait Implementations§
Source§impl Clone for RollbackError
impl Clone for RollbackError
Source§fn clone(&self) -> RollbackError
fn clone(&self) -> RollbackError
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 RollbackError
impl Debug for RollbackError
Source§impl Display for RollbackError
impl Display for RollbackError
impl Eq for RollbackError
Source§impl Error for RollbackError
impl Error for RollbackError
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 RollbackError
impl PartialEq for RollbackError
Source§fn eq(&self, other: &RollbackError) -> bool
fn eq(&self, other: &RollbackError) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RollbackError
Auto Trait Implementations§
impl Freeze for RollbackError
impl RefUnwindSafe for RollbackError
impl Send for RollbackError
impl Sync for RollbackError
impl Unpin for RollbackError
impl UnsafeUnpin for RollbackError
impl UnwindSafe for RollbackError
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