diff --git a/scylla/src/cluster/metadata.rs b/scylla/src/cluster/metadata.rs index a0509a98c..d2c1e24fc 100644 --- a/scylla/src/cluster/metadata.rs +++ b/scylla/src/cluster/metadata.rs @@ -19,7 +19,7 @@ use crate::client::pager::{NextPageError, NextRowError, QueryPager}; use crate::cluster::node::resolve_contact_points; use crate::deserialize::DeserializeOwnedRow; -use crate::errors::{DbError, NewSessionError, QueryError, RequestAttemptError}; +use crate::errors::{DbError, NewSessionError, RequestAttemptError}; use crate::frame::response::event::Event; use crate::network::{Connection, ConnectionConfig, NodeConnectionPool, PoolConfig, PoolSize}; use crate::policies::host_filter::HostFilter; @@ -542,7 +542,7 @@ impl MetadataReader { } /// Fetches current metadata from the cluster - pub(crate) async fn read_metadata(&mut self, initial: bool) -> Result { + pub(crate) async fn read_metadata(&mut self, initial: bool) -> Result { let mut result = self.fetch_metadata(initial).await; let prev_err = match result { Ok(metadata) => { @@ -620,8 +620,8 @@ impl MetadataReader { &mut self, initial: bool, nodes: impl Iterator, - prev_err: QueryError, - ) -> Result { + prev_err: MetadataError, + ) -> Result { let mut result = Err(prev_err); for peer in nodes { let err = match result { @@ -654,7 +654,7 @@ impl MetadataReader { result } - async fn fetch_metadata(&self, initial: bool) -> Result { + async fn fetch_metadata(&self, initial: bool) -> Result { // TODO: Timeouts? self.control_connection.wait_until_initialized().await; let conn = &self.control_connection.random_connection()?; @@ -680,7 +680,7 @@ impl MetadataReader { } } - res.map_err(QueryError::MetadataError) + res } fn update_known_peers(&mut self, metadata: &Metadata) { diff --git a/scylla/src/errors.rs b/scylla/src/errors.rs index 8b6c0a2e3..bc0de6f4d 100644 --- a/scylla/src/errors.rs +++ b/scylla/src/errors.rs @@ -419,6 +419,10 @@ pub enum TracingProtocolError { #[derive(Error, Debug, Clone)] #[non_exhaustive] pub enum MetadataError { + /// Control connection pool error. + #[error("Control connection pool error: {0}")] + ConnectionPoolError(#[from] ConnectionPoolError), + /// Bad peers metadata. #[error("Bad peers metadata: {0}")] Peers(#[from] PeersMetadataError),