From: Matt Corallo Date: Tue, 13 Feb 2024 22:57:18 +0000 (+0000) Subject: Make peers sending gossip out of order logging less scary X-Git-Tag: v0.0.123-beta~65^2~3 X-Git-Url: http://git.bitcoin.ninja/?a=commitdiff_plain;h=96b141c5038b11e51697f09d2571aef858087a7f;p=rust-lightning Make peers sending gossip out of order logging less scary Multiple times we've had users wonder why they see `Error handling message from.*; ignoring: Couldn't find channel for update` in their logs and wonder if its related to their channel force-closing. While this does indicate a peer is sending us gossip our of order (and thus misbehaving), its not relevant to channel operation and the logged message and level should indicate that. Thus, here, we move the level to Gossip and add "gossip" between "handling" and "message" (so it reads "Error handling gossip message from.*"). Fixes #2471 --- diff --git a/lightning/src/ln/peer_handler.rs b/lightning/src/ln/peer_handler.rs index 0f206117e..8d8376371 100644 --- a/lightning/src/ln/peer_handler.rs +++ b/lightning/src/ln/peer_handler.rs @@ -33,7 +33,7 @@ use crate::onion_message::offers::{OffersMessage, OffersMessageHandler}; use crate::onion_message::packet::OnionMessageContents; use crate::routing::gossip::{NodeId, NodeAlias}; use crate::util::atomic_counter::AtomicCounter; -use crate::util::logger::{Logger, WithContext}; +use crate::util::logger::{Level, Logger, WithContext}; use crate::util::string::PrintableString; use crate::prelude::*; @@ -1329,7 +1329,9 @@ impl { - log_given_level!(logger, level, "Error handling message{}; ignoring: {}", OptionalFromDebugger(&peer_node_id), e.err); + log_given_level!(logger, level, "Error handling {}message{}; ignoring: {}", + if level == Level::Gossip { "gossip " } else { "" }, + OptionalFromDebugger(&peer_node_id), e.err); continue }, msgs::ErrorAction::IgnoreDuplicateGossip => continue, // Don't even bother logging these diff --git a/lightning/src/routing/gossip.rs b/lightning/src/routing/gossip.rs index 950ec79a1..a4938f72e 100644 --- a/lightning/src/routing/gossip.rs +++ b/lightning/src/routing/gossip.rs @@ -1925,7 +1925,10 @@ impl NetworkGraph where L::Target: Logger { None => { core::mem::drop(channels); self.pending_checks.check_hold_pending_channel_update(msg, full_msg)?; - return Err(LightningError{err: "Couldn't find channel for update".to_owned(), action: ErrorAction::IgnoreError}); + return Err(LightningError { + err: "Couldn't find channel for update".to_owned(), + action: ErrorAction::IgnoreAndLog(Level::Gossip), + }); }, Some(channel) => { if msg.htlc_maximum_msat > MAX_VALUE_MSAT {