mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 19:09:54 +00:00
chore: use Display instead of Debug for most errors (#6777)
This commit is contained in:
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) => {
|
||||
|
||||
@ -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")
|
||||
|
||||
@ -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) => {
|
||||
|
||||
@ -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)))
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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"
|
||||
);
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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"
|
||||
);
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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),
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user