From 9c71026416d588970d67ac589731b444d6cb720c Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Mon, 28 Jul 2025 21:38:23 +0000 Subject: [PATCH] chore(connlib): gate more trace logs on `debug_assertions` (#10026) These are otherwise hit pretty often in the hot-path and slow packet routing down because tracing needs to evaluate whether it should log the statement. --- rust/connlib/dns-over-tcp/src/client.rs | 8 ++++++-- rust/connlib/dns-over-tcp/src/server.rs | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rust/connlib/dns-over-tcp/src/client.rs b/rust/connlib/dns-over-tcp/src/client.rs index d6680d158..ecba7b7fe 100644 --- a/rust/connlib/dns-over-tcp/src/client.rs +++ b/rust/connlib/dns-over-tcp/src/client.rs @@ -1,5 +1,5 @@ use std::{ - collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}, + collections::{BTreeMap, HashMap, HashSet, VecDeque}, net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}, time::{Duration, Instant}, }; @@ -118,12 +118,14 @@ impl Client { /// Only TCP packets originating from one of the connected DNS resolvers are accepted. pub fn accepts(&self, packet: &IpPacket) -> bool { let Some(tcp) = packet.as_tcp() else { + #[cfg(debug_assertions)] tracing::trace!(?packet, "Not a TCP packet"); return false; }; let Some((ipv4_source, ipv6_source)) = self.source_ips else { + #[cfg(debug_assertions)] tracing::trace!("No source interface"); return false; @@ -139,8 +141,10 @@ impl Client { let remote = SocketAddr::new(packet.source(), tcp.source_port()); let has_socket = self.sockets_by_remote.contains_key(&remote); + #[cfg(debug_assertions)] if !has_socket && tracing::enabled!(tracing::Level::TRACE) { - let open_sockets = BTreeSet::from_iter(self.sockets_by_remote.keys().copied()); + let open_sockets = + std::collections::BTreeSet::from_iter(self.sockets_by_remote.keys().copied()); tracing::trace!(%remote, ?open_sockets, "No open socket for remote"); } diff --git a/rust/connlib/dns-over-tcp/src/server.rs b/rust/connlib/dns-over-tcp/src/server.rs index 3385dc5f5..6be533a37 100644 --- a/rust/connlib/dns-over-tcp/src/server.rs +++ b/rust/connlib/dns-over-tcp/src/server.rs @@ -112,6 +112,7 @@ impl Server { /// Only TCP packets targeted at one of sockets configured with [`Server::set_listen_addresses`] are accepted. pub fn accepts(&self, packet: &IpPacket) -> bool { let Some(tcp) = packet.as_tcp() else { + #[cfg(debug_assertions)] tracing::trace!(?packet, "Not a TCP packet"); return false; @@ -120,6 +121,7 @@ impl Server { let dst = SocketAddr::new(packet.destination(), tcp.destination_port()); let is_listening = self.listen_endpoints.values().any(|s| s == &dst); + #[cfg(debug_assertions)] if !is_listening && tracing::enabled!(tracing::Level::TRACE) { let listen_endpoints = BTreeSet::from_iter(self.listen_endpoints.values().copied());