Skip to content

Commit b87cdec

Browse files
committed
Keep source error of node not connectable
1 parent d310cce commit b87cdec

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/kv.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ pub enum KvError {
3636
TabletNotDeployed { id: TabletId },
3737
#[error("node {node} not available")]
3838
NodeNotAvailable { node: NodeId },
39-
#[error("node {node} not connectable: {message}")]
40-
NodeNotConnectable { node: NodeId, message: String },
39+
#[error("node {node} not connectable: {source}")]
40+
NodeNotConnectable {
41+
node: NodeId,
42+
#[source]
43+
source: anyhow::Error,
44+
},
4145
#[error("{status}")]
4246
GrpcError { status: tonic::Status },
4347
#[error("unexpected: {message}")]
@@ -88,7 +92,7 @@ impl From<TabletClientError> for KvError {
8892
TabletClientError::DeploymentNotFound { id } => Self::DeploymentNotFound { id },
8993
TabletClientError::TabletNotDeployed { id } => Self::TabletNotDeployed { id },
9094
TabletClientError::NodeNotAvailable { node } => Self::NodeNotAvailable { node },
91-
TabletClientError::NodeNotConnectable { node, message } => Self::NodeNotConnectable { node, message },
95+
TabletClientError::NodeNotConnectable { node, source } => Self::NodeNotConnectable { node, source },
9296
TabletClientError::GrpcError { status } => Self::GrpcError { status },
9397
TabletClientError::UnexpectedError { message } => Self::UnexpectedError { message },
9498
TabletClientError::ShardNotFound { tablet_id, shard_id, key } => {

src/tablet/client.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,12 @@ pub enum TabletClientError {
367367
TabletNotDeployed { id: TabletId },
368368
#[error("node {node} not available")]
369369
NodeNotAvailable { node: NodeId },
370-
#[error("node {node} not connectable: {message}")]
371-
NodeNotConnectable { node: NodeId, message: String },
370+
#[error("node {node} not connectable: {source}")]
371+
NodeNotConnectable {
372+
node: NodeId,
373+
#[source]
374+
source: anyhow::Error,
375+
},
372376
#[error("{status}")]
373377
GrpcError { status: tonic::Status },
374378
#[error("unexpected: {message}")]
@@ -660,7 +664,7 @@ impl RootTabletClient {
660664
trace!("connecting addr: {}, shard: {:?}", addr, deployment);
661665
TabletServiceClient::connect(addr.to_string())
662666
.await
663-
.map_err(|e| TabletClientError::NodeNotConnectable { node: node.clone(), message: e.to_string() })
667+
.map_err(|e| TabletClientError::NodeNotConnectable { node: node.clone(), source: anyhow::Error::new(e) })
664668
}
665669

666670
pub async fn service(

0 commit comments

Comments
 (0)