pub enum Error {
Show 44 variants
IoError(Error),
SledError(Error),
TonicError(Error),
GeneralServerError(String),
ServerError,
BincodeError(Error),
NodeFailedToStartError,
ConnectError,
RetryTimeoutError,
StateMachinneError(String),
NodeIsNotLeaderError,
ClusterMembershipNotFound,
NoLeaderFound,
EmptyKeys,
InvalidResponse,
InvalidResponseType,
ClusterMembershipUpdateFailed(String),
ClusterMetadataNodeMetaNotFound(u32),
AppendEntriesCommitNotConfirmed,
AppendEntriesNotLeader,
AppendEntriesNoPeerFound,
AppendEntriesServerTimeoutResponding,
ElectionFailed(String),
StateTransitionError(StateTransitionError),
HigherTermFoundError(u64),
Exit,
RPCServerDies,
ServerIsNotReadyError,
RPCServerStatusError(String),
InvalidURI(String),
FailedToSendReadRequestError,
FailedToSendWriteRequestError,
RetryTaskFailed(String),
AddrParseError(AddrParseError),
FailedSetPeerConnection(String),
ConfigError(ConfigError),
TokioSendStatusError(String),
NotLeader,
LearnerCanNot,
Illegal,
TransitionFailed,
JoinError(JoinError),
GeneralClientError(String),
InvalidConfig(String),
}Expand description
Custom errors definition
Variants§
IoError(Error)
General file IO error
SledError(Error)
Sled DB related error
TonicError(Error)
RPC framework tonic related error
GeneralServerError(String)
General server error
ServerError
General server error without message
BincodeError(Error)
Bincode related error
NodeFailedToStartError
Node start failed error
ConnectError
RPC connection error
RetryTimeoutError
Async task retry timeout error
StateMachinneError(String)
State machine related error
NodeIsNotLeaderError
The request was sent to a follower or non-leader node; the client should retry with the leader.
ClusterMembershipNotFound
The cluster has no known membership configuration; it may be unavailable or uninitialized.
NoLeaderFound
Returned when the cluster has no elected leader or the leader is unknown. This typically occurs during elections or network partitions.
EmptyKeys
Returned when client get_multi is called without any keys.
InvalidResponse
The response from the client response is invalid or missing expected data.
InvalidResponseType
Returned when the server response type does not match the expected variant for the operation. Typically indicates a protocol mismatch or internal bug.
ClusterMembershipUpdateFailed(String)
Indicates failure to fetch or apply the latest cluster membership from the leader. Additional context is included in the error message.
ClusterMetadataNodeMetaNotFound(u32)
Indicates that the Raft metadata for the given node ID was not found. This usually occurs when the client or leader lacks an up-to-date cluster view, or the node has not been properly registered in cluster membership.
The u32 parameter represents the node ID being queried.
AppendEntriesCommitNotConfirmed
The follower could not confirm commitment of the log entry. This may happen if the follower’s log is not sufficiently up-to-date or quorum was not reached.
AppendEntriesNotLeader
The current node rejected the AppendEntries request because it is not the leader. Clients should redirect requests to the current cluster leader.
AppendEntriesNoPeerFound
The target peer specified in the AppendEntries request was not found in the current cluster view. This can occur if the membership view is outdated or the peer was removed.
AppendEntriesServerTimeoutResponding
Typically caused by network partitions, slow nodes, or overloaded peers.
ElectionFailed(String)
The node failed to win the election. This could happen due to split vote, quorum not reached, or other election logic failure. The error message may contain additional context such as vote count or term mismatch.
StateTransitionError(StateTransitionError)
Error occurred during a Raft state transition (e.g., follower → candidate, candidate → leader). Propagates the underlying StateTransitionError.
HigherTermFoundError(u64)
A message was received with a higher term than the local node’s current term. The node should step down and update its term accordingly.
Exit
Receive Exist Signals
RPCServerDies
Indicated RPC service stops serving
ServerIsNotReadyError
Indicate node is not ready to server request
RPCServerStatusError(String)
Receive status error from RPC service
InvalidURI(String)
The error is returned when the provided URI is invalid. The error message will include the invalid URI for context.
FailedToSendReadRequestError
Indicates a failure to send a read request.
FailedToSendWriteRequestError
Indicates a failure to send a write request.
RetryTaskFailed(String)
A task retry failed, often due to reaching the maximum retry limit or encountering persistent errors.
AddrParseError(AddrParseError)
Address parsing error when invalid network address is encountered.
FailedSetPeerConnection(String)
Failed to set up a peer connection, possibly due to network or configuration issues. The error message may contain more details about the failure.
ConfigError(ConfigError)
General error indicating a configuration issue. The error message will provide details about the specific configuration problem.
TokioSendStatusError(String)
Error encountered when sending a Tonic status via tokio. The error message will include details about the status failure.
NotLeader
The operation failed because the current node is not a leader.
LearnerCanNot
The operation failed because the node is a learner and cannot perform this action.
Illegal
A generic error indicating an illegal state or operation.
TransitionFailed
The error indicates that a state transition has failed.
JoinError(JoinError)
Error encountered when a tokio task join fails.
GeneralClientError(String)
General client request error
InvalidConfig(String)
Configuration is invalid. The error message will contain details about what is wrong with the config.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
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<AddrParseError> for Error
impl From<AddrParseError> for Error
Source§fn from(source: AddrParseError) -> Self
fn from(source: AddrParseError) -> Self
Source§impl From<ClientRequestError> for Error
impl From<ClientRequestError> for Error
Source§fn from(e: ClientRequestError) -> Self
fn from(e: ClientRequestError) -> Self
Source§impl From<ConfigError> for Error
impl From<ConfigError> for Error
Source§fn from(source: ConfigError) -> Self
fn from(source: ConfigError) -> Self
Source§impl From<Error> for ClientRequestError
impl From<Error> for ClientRequestError
Auto Trait Implementations§
impl Freeze for Error
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations§
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> 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> 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