Skip to content

Commit

Permalink
fix(kad): reduce noise of "remote supports our protocol" log
Browse files Browse the repository at this point in the history
This PR changes the logging of the Kademlia connection handler related to the remote Kademlia mode changes:
- Downgrade log level for the remote kademlia protocol report from `info` to `debug`.
- Introduce connection_id for the handler to improve logging.

Pull-Request: #4278.
  • Loading branch information
shamil-gadelshin authored Aug 7, 2023
1 parent 72fd50a commit e651552
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ libp2p-quic = { version = "0.9.0-alpha", path = "transports/quic" }
libp2p-relay = { version = "0.16.1", path = "protocols/relay" }
libp2p-rendezvous = { version = "0.13.0", path = "protocols/rendezvous" }
libp2p-request-response = { version = "0.25.1", path = "protocols/request-response" }
libp2p-swarm = { version = "0.43.2", path = "swarm" }
libp2p-swarm = { version = "0.43.3", path = "swarm" }
libp2p-swarm-derive = { version = "0.33.0", path = "swarm-derive" }
libp2p-swarm-test = { version = "0.2.0", path = "swarm-test" }
libp2p-tcp = { version = "0.40.0", path = "transports/tcp" }
Expand Down
3 changes: 3 additions & 0 deletions protocols/kad/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

- Implement common traits on `RoutingUpdate`.
See [PR 4270].
- Reduce noise of "remote supports our protocol" log.
See [PR 4278].

[PR 4270]: https://github.com/libp2p/rust-libp2p/pull/4270
[PR 4278]: https://github.com/libp2p/rust-libp2p/pull/4278

## 0.44.3

Expand Down
2 changes: 2 additions & 0 deletions protocols/kad/src/behaviour.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2081,6 +2081,7 @@ where
connected_point,
peer,
self.mode,
connection_id,
))
}

Expand All @@ -2103,6 +2104,7 @@ where
connected_point,
peer,
self.mode,
connection_id,
))
}

Expand Down
21 changes: 14 additions & 7 deletions protocols/kad/src/handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ use libp2p_swarm::handler::{
ConnectionEvent, DialUpgradeError, FullyNegotiatedInbound, FullyNegotiatedOutbound,
};
use libp2p_swarm::{
ConnectionHandler, ConnectionHandlerEvent, KeepAlive, Stream, StreamUpgradeError,
ConnectionHandler, ConnectionHandlerEvent, ConnectionId, KeepAlive, Stream, StreamUpgradeError,
SubstreamProtocol, SupportedProtocols,
};
use log::trace;
Expand Down Expand Up @@ -94,6 +94,9 @@ pub struct KademliaHandler {
protocol_status: ProtocolStatus,

remote_supported_protocols: SupportedProtocols,

/// The ID of this connection.
connection_id: ConnectionId,
}

/// The states of protocol confirmation that a connection
Expand Down Expand Up @@ -474,6 +477,7 @@ impl KademliaHandler {
endpoint: ConnectedPoint,
remote_peer_id: PeerId,
mode: Mode,
connection_id: ConnectionId,
) -> Self {
match &endpoint {
ConnectedPoint::Dialer { .. } => {
Expand Down Expand Up @@ -504,6 +508,7 @@ impl KademliaHandler {
keep_alive,
protocol_status: ProtocolStatus::Unknown,
remote_supported_protocols: Default::default(),
connection_id,
}
}

Expand Down Expand Up @@ -803,17 +808,19 @@ impl ConnectionHandler for KademliaHandler {
match (remote_supports_our_kademlia_protocols, self.protocol_status) {
(true, ProtocolStatus::Confirmed | ProtocolStatus::Reported) => {}
(true, _) => {
log::info!(
"Remote {} now supports our kademlia protocol",
self.remote_peer_id
log::debug!(
"Remote {} now supports our kademlia protocol on connection {}",
self.remote_peer_id,
self.connection_id,
);

self.protocol_status = ProtocolStatus::Confirmed;
}
(false, ProtocolStatus::Confirmed | ProtocolStatus::Reported) => {
log::info!(
"Remote {} no longer supports our kademlia protocol",
self.remote_peer_id
log::debug!(
"Remote {} no longer supports our kademlia protocol on connection {}",
self.remote_peer_id,
self.connection_id,
);

self.protocol_status = ProtocolStatus::NotSupported;
Expand Down
7 changes: 7 additions & 0 deletions swarm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 0.43.3 - unreleased

- Implement `Display` for `ConnectionId`.
See [PR 4278].

[PR 4278]: https://github.com/libp2p/rust-libp2p/pull/4278

## 0.43.2
- Display the cause of a `ListenError::Denied`.
See [PR 4232]
Expand Down
2 changes: 1 addition & 1 deletion swarm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "libp2p-swarm"
edition = "2021"
rust-version = { workspace = true }
description = "The libp2p swarm"
version = "0.43.2"
version = "0.43.3"
authors = ["Parity Technologies <admin@parity.io>"]
license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p"
Expand Down
7 changes: 7 additions & 0 deletions swarm/src/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ use libp2p_core::upgrade::{NegotiationError, ProtocolError};
use libp2p_core::Endpoint;
use libp2p_identity::PeerId;
use std::collections::HashSet;
use std::fmt::{Display, Formatter};
use std::future::Future;
use std::sync::atomic::{AtomicUsize, Ordering};
use std::task::Waker;
Expand Down Expand Up @@ -82,6 +83,12 @@ impl ConnectionId {
}
}

impl Display for ConnectionId {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
write!(f, "{}", self.0)
}
}

/// Information about a successfully established connection.
#[derive(Debug, Clone, PartialEq, Eq)]
pub(crate) struct Connected {
Expand Down

0 comments on commit e651552

Please sign in to comment.