chore: use Display instead of Debug for most errors (#6777)

This commit is contained in:
DaniPopes
2024-02-24 14:13:41 +02:00
committed by GitHub
parent da3f469758
commit 94cb6a8bcd
36 changed files with 106 additions and 105 deletions

View File

@ -1639,7 +1639,7 @@ impl Discv4Service {
debug!(target: "discv4", %err, "failed to read datagram");
}
IngressEvent::BadPacket(from, err, data) => {
debug!(target: "discv4", ?from, ?err, packet=?hex::encode(&data), "bad packet");
debug!(target: "discv4", ?from, %err, packet=?hex::encode(&data), "bad packet");
}
IngressEvent::Packet(remote_addr, Packet { msg, node_id, hash }) => {
trace!(target: "discv4", r#type=?msg.msg_type(), from=?remote_addr,"received packet");
@ -1765,7 +1765,7 @@ pub(crate) async fn send_loop(udp: Arc<UdpSocket>, rx: EgressReceiver) {
trace!(target: "discv4", ?to, ?size,"sent payload");
}
Err(err) => {
debug!(target: "discv4", ?to, ?err,"Failed to send datagram.");
debug!(target: "discv4", ?to, %err,"Failed to send datagram.");
}
}
}
@ -1788,7 +1788,7 @@ pub(crate) async fn receive_loop(udp: Arc<UdpSocket>, tx: IngressSender, local_i
let res = udp.recv_from(&mut buf).await;
match res {
Err(err) => {
debug!(target: "discv4", ?err, "Failed to read datagram.");
debug!(target: "discv4", %err, "Failed to read datagram.");
send(IngressEvent::RecvError(err)).await;
}
Ok((read, remote_addr)) => {
@ -1803,7 +1803,7 @@ pub(crate) async fn receive_loop(udp: Arc<UdpSocket>, tx: IngressSender, local_i
send(IngressEvent::Packet(remote_addr, packet)).await;
}
Err(err) => {
debug!(target: "discv4", ?err,"Failed to decode packet");
debug!(target: "discv4", %err,"Failed to decode packet");
send(IngressEvent::BadPacket(remote_addr, err, packet.to_vec())).await
}
}

View File

@ -146,7 +146,7 @@ impl Stream for MockDiscovery {
match event {
IngressEvent::RecvError(_) => {}
IngressEvent::BadPacket(from, err, data) => {
debug!(target: "discv4", ?from, ?err, packet=?hex::encode(&data), "bad packet");
debug!(target: "discv4", ?from, %err, packet=?hex::encode(&data), "bad packet");
}
IngressEvent::Packet(remote_addr, Packet { msg, node_id, hash }) => match msg {
Message::Ping(ping) => {

View File

@ -234,7 +234,7 @@ impl<R: Resolver> DnsDiscoveryService<R> {
}
},
Err((err, link)) => {
debug!(target: "disc::dns",?err, ?link, "Failed to lookup root")
debug!(target: "disc::dns",%err, ?link, "Failed to lookup root")
}
}
}
@ -251,7 +251,7 @@ impl<R: Resolver> DnsDiscoveryService<R> {
match entry {
Some(Err(err)) => {
debug!(target: "disc::dns",?err, domain=%link.domain, ?hash, "Failed to lookup entry")
debug!(target: "disc::dns",%err, domain=%link.domain, ?hash, "Failed to lookup entry")
}
None => {
debug!(target: "disc::dns",domain=%link.domain, ?hash, "No dns entry")

View File

@ -19,7 +19,7 @@ impl<P: ConnectionProvider> Resolver for AsyncResolver<P> {
let fqn = if query.ends_with('.') { query.to_string() } else { format!("{query}.") };
match self.txt_lookup(fqn).await {
Err(err) => {
trace!(target: "disc::dns", ?err, ?query, "dns lookup failed");
trace!(target: "disc::dns", %err, ?query, "dns lookup failed");
None
}
Ok(lookup) => {

View File

@ -360,7 +360,7 @@ where
this.buffer_bodies_response(response);
}
Err(error) => {
tracing::debug!(target: "downloaders::bodies", ?error, "Request failed");
tracing::debug!(target: "downloaders::bodies", %error, "Request failed");
this.clear();
return Poll::Ready(Some(Err(error)))
}
@ -386,7 +386,7 @@ where
}
Ok(None) => break 'inner,
Err(error) => {
tracing::error!(target: "downloaders::bodies", ?error, "Failed to download from next request");
tracing::error!(target: "downloaders::bodies", %error, "Failed to download from next request");
this.clear();
return Poll::Ready(Some(Err(error)))
}

View File

@ -117,7 +117,7 @@ impl<T: BodyDownloader> Future for SpawnedDownloader<T> {
while let Poll::Ready(update) = this.updates.poll_next_unpin(cx) {
if let Some(range) = update {
if let Err(err) = this.downloader.set_download_range(range) {
tracing::error!(target: "downloaders::bodies", ?err, "Failed to set bodies download range");
tracing::error!(target: "downloaders::bodies", %err, "Failed to set bodies download range");
// Clone the sender ensure its availability. See [PollSender::clone].
let mut bodies_tx = this.bodies_tx.clone();

View File

@ -258,7 +258,7 @@ where
validated.last().or_else(|| self.lowest_validated_header())
{
if let Err(error) = self.validate(validated_header, &parent) {
trace!(target: "downloaders::headers", ?error ,"Failed to validate header");
trace!(target: "downloaders::headers", %error ,"Failed to validate header");
return Err(
HeadersResponseError { request, peer_id: Some(peer_id), error }.into()
)
@ -278,7 +278,7 @@ where
{
// Every header must be valid on its own
if let Err(error) = self.consensus.validate_header(last_header) {
trace!(target: "downloaders::headers", ?error, "Failed to validate header");
trace!(target: "downloaders::headers", %error, "Failed to validate header");
return Err(HeadersResponseError {
request,
peer_id: Some(peer_id),
@ -294,7 +294,7 @@ where
// detached head error.
if let Err(error) = self.consensus.validate_header_against_parent(last_header, head) {
// Replace the last header with a detached variant
error!(target: "downloaders::headers", ?error, number = last_header.number, hash = ?last_header.hash(), "Header cannot be attached to known canonical chain");
error!(target: "downloaders::headers", %error, number = last_header.number, hash = ?last_header.hash(), "Header cannot be attached to known canonical chain");
return Err(HeadersDownloaderError::DetachedHead {
local_head: Box::new(head.clone()),
header: Box::new(last_header.clone()),
@ -529,7 +529,7 @@ where
fn penalize_peer(&self, peer_id: Option<PeerId>, error: &DownloadError) {
// Penalize the peer for bad response
if let Some(peer_id) = peer_id {
trace!(target: "downloaders::headers", ?peer_id, ?error, "Penalizing peer");
trace!(target: "downloaders::headers", ?peer_id, %error, "Penalizing peer");
self.client.report_bad_message(peer_id);
}
}
@ -775,7 +775,7 @@ where
match this.on_sync_target_outcome(outcome) {
Ok(()) => break,
Err(ReverseHeadersDownloaderError::Response(error)) => {
trace!(target: "downloaders::headers", ?error, "invalid sync target response");
trace!(target: "downloaders::headers", %error, "invalid sync target response");
if error.is_channel_closed() {
// download channel closed which means the network was dropped
return Poll::Ready(None)

View File

@ -11,7 +11,6 @@ use std::io;
/// Errors when sending/receiving messages
#[derive(thiserror::Error, Debug)]
pub enum EthStreamError {
#[error(transparent)]
/// Error of the underlying P2P connection.

View File

@ -134,7 +134,7 @@ where
Err(P2PStreamError::HandshakeError(P2PHandshakeError::Disconnected(reason)))
}
Err(err) => {
debug!(?err, msg=%hex::encode(&first_message_bytes), "Failed to decode first message from peer");
debug!(%err, msg=%hex::encode(&first_message_bytes), "Failed to decode first message from peer");
Err(P2PStreamError::HandshakeError(err.into()))
}
Ok(msg) => {
@ -349,7 +349,7 @@ impl<S> DisconnectP2P for P2PStream<S> {
let compressed_size =
self.encoder.compress(&buf[1..], &mut compressed[1..]).map_err(|err| {
debug!(
?err,
%err,
msg=%hex::encode(&buf[1..]),
"error compressing disconnect"
);
@ -436,7 +436,7 @@ where
// to decompress the message before we can decode it.
this.decoder.decompress(&bytes[1..], &mut decompress_buf[1..]).map_err(|err| {
debug!(
?err,
%err,
msg=%hex::encode(&bytes[1..]),
"error decompressing p2p message"
);
@ -455,7 +455,7 @@ where
_ if id == P2PMessageID::Disconnect as u8 => {
let reason = DisconnectReason::decode(&mut &decompress_buf[1..]).map_err(|err| {
debug!(
?err, msg=%hex::encode(&decompress_buf[1..]), "Failed to decode disconnect message from peer"
%err, msg=%hex::encode(&decompress_buf[1..]), "Failed to decode disconnect message from peer"
);
err
})?;
@ -573,7 +573,7 @@ where
let compressed_size =
this.encoder.compress(&item[1..], &mut compressed[1..]).map_err(|err| {
debug!(
?err,
%err,
msg=%hex::encode(&item[1..]),
"error compressing p2p message"
);

View File

@ -244,14 +244,14 @@ async fn resolve_external_ip_upnp() -> Option<IpAddr> {
search_gateway(Default::default())
.await
.map_err(|err| {
debug!(target: "net::nat", ?err, "Failed to resolve external IP via UPnP: failed to find gateway");
debug!(target: "net::nat", %err, "Failed to resolve external IP via UPnP: failed to find gateway");
err
})
.ok()?
.get_external_ip()
.await
.map_err(|err| {
debug!(target: "net::nat", ?err, "Failed to resolve external IP via UPnP");
debug!(target: "net::nat", %err, "Failed to resolve external IP via UPnP");
err
})
.ok()

View File

@ -77,7 +77,7 @@ impl NetworkError {
/// Abstraction over errors that can lead to a failed session
#[auto_impl::auto_impl(&)]
pub(crate) trait SessionError: fmt::Debug {
pub(crate) trait SessionError: fmt::Debug + fmt::Display {
/// Returns true if the error indicates that the corresponding peer should be removed from peer
/// discovery, for example if it's using a different genesis hash.
fn merits_discovery_ban(&self) -> bool;

View File

@ -690,7 +690,7 @@ where
trace!(target: "net", ?remote_addr, "TCP listener closed.");
}
SwarmEvent::TcpListenerError(err) => {
trace!(target: "net", ?err, "TCP connection error.");
trace!(target: "net", %err, "TCP connection error.");
}
SwarmEvent::IncomingTcpConnection { remote_addr, session_id } => {
trace!(target: "net", ?session_id, ?remote_addr, "Incoming connection");
@ -883,7 +883,7 @@ where
target: "net",
?remote_addr,
?peer_id,
?error,
%error,
"Outgoing connection error"
);

View File

@ -460,10 +460,10 @@ impl PeersManager {
err: impl SessionError,
reputation_change: ReputationChangeKind,
) {
trace!(target: "net::peers", ?remote_addr, ?peer_id, ?err, "handling failed connection");
trace!(target: "net::peers", ?remote_addr, ?peer_id, %err, "handling failed connection");
if err.is_fatal_protocol_error() {
trace!(target: "net::peers", ?remote_addr, ?peer_id, ?err, "fatal connection error");
trace!(target: "net::peers", ?remote_addr, ?peer_id, %err, "fatal connection error");
// remove the peer to which we can't establish a connection due to protocol related
// issues.
if let Some((peer_id, peer)) = self.peers.remove_entry(peer_id) {

View File

@ -293,7 +293,7 @@ impl ActiveSession {
self.queued_outgoing.push_back(msg.into());
}
Err(err) => {
debug!(target: "net", ?err, "Failed to respond to received request");
debug!(target: "net", %err, "Failed to respond to received request");
}
}
}
@ -408,7 +408,7 @@ impl ActiveSession {
self.poll_disconnect(cx)
}
Err(err) => {
debug!(target: "net::session", ?err, remote_peer_id=?self.remote_peer_id, "could not send disconnect");
debug!(target: "net::session", %err, remote_peer_id=?self.remote_peer_id, "could not send disconnect");
self.close_on_error(err, cx)
}
}
@ -557,7 +557,7 @@ impl Future for ActiveSession {
OutgoingMessage::Broadcast(msg) => this.conn.start_send_broadcast(msg),
};
if let Err(err) = res {
debug!(target: "net::session", ?err, remote_peer_id=?this.remote_peer_id, "failed to send message");
debug!(target: "net::session", %err, remote_peer_id=?this.remote_peer_id, "failed to send message");
// notify the manager
return this.close_on_error(err, cx)
}
@ -614,7 +614,7 @@ impl Future for ActiveSession {
progress = true;
}
OnIncomingMessageOutcome::BadMessage { error, message } => {
debug!(target: "net::session", ?error, msg=?message, remote_peer_id=?this.remote_peer_id, "received invalid protocol message");
debug!(target: "net::session", %error, msg=?message, remote_peer_id=?this.remote_peer_id, "received invalid protocol message");
return this.close_on_error(error, cx)
}
OnIncomingMessageOutcome::NoCapacity(msg) => {
@ -625,7 +625,7 @@ impl Future for ActiveSession {
}
}
Err(err) => {
debug!(target: "net::session", ?err, remote_peer_id=?this.remote_peer_id, "failed to receive message");
debug!(target: "net::session", %err, remote_peer_id=?this.remote_peer_id, "failed to receive message");
return this.close_on_error(err, cx)
}
}

View File

@ -395,7 +395,7 @@ impl SessionManager {
remote_addr,
error,
} => {
trace!(target: "net::session", ?peer_id, ?error,"closed session.");
trace!(target: "net::session", ?peer_id, %error,"closed session.");
self.remove_active_session(&peer_id);
Poll::Ready(SessionEvent::SessionClosedOnConnectionError {
remote_addr,
@ -568,7 +568,7 @@ impl SessionManager {
} => {
trace!(
target: "net::session",
?error,
%error,
?session_id,
?remote_addr,
?peer_id,
@ -580,7 +580,7 @@ impl SessionManager {
PendingSessionEvent::EciesAuthError { remote_addr, session_id, error, direction } => {
trace!(
target: "net::session",
?error,
%error,
?session_id,
?remote_addr,
"ecies auth failed"
@ -753,11 +753,13 @@ pub enum SessionEvent {
}
/// Errors that can occur during handshaking/authenticating the underlying streams.
#[derive(Debug)]
#[derive(Debug, thiserror::Error)]
pub enum PendingSessionHandshakeError {
/// The pending session failed due to an error while establishing the `eth` stream
#[error(transparent)]
Eth(EthStreamError),
/// The pending session failed due to an error while establishing the ECIES stream
#[error(transparent)]
Ecies(ECIESError),
}

View File

@ -220,7 +220,7 @@ where
return Some(SwarmEvent::IncomingTcpConnection { session_id, remote_addr })
}
Err(err) => {
trace!(target: "net", ?err, "Incoming connection rejected, capacity already reached.");
trace!(target: "net", %err, "Incoming connection rejected, capacity already reached.");
self.state_mut()
.peers_mut()
.on_incoming_pending_session_rejected_internally();

View File

@ -1234,7 +1234,7 @@ where
);
}
FetchEvent::FetchError { peer_id, error } => {
trace!(target: "net::tx", ?peer_id, ?error, "requesting transactions from peer failed");
trace!(target: "net::tx", ?peer_id, %error, "requesting transactions from peer failed");
this.on_request_error(peer_id, error);
}
}
@ -1265,7 +1265,7 @@ where
// known that this transaction is bad. (e.g. consensus
// rules)
if err.is_bad_transaction() && !this.network.is_syncing() {
debug!(target: "net::tx", ?err, "bad pool transaction import");
debug!(target: "net::tx", %err, "bad pool transaction import");
this.on_bad_import(err.hash);
continue
}