Skip to content

Commit 1f592b0

Browse files
committed
Do not log_debug when we receive duplicate gossip messages
We very often receive duplicate gossip messages, which now causes us to log at the DEBUG level, which is almost certainly not what a user wants. Instead, we add a new form of ErrorAction which causes us to only log at the TRACE level.
1 parent 7fa6a7d commit 1f592b0

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

lightning/src/ln/msgs.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use core::fmt::Debug;
3838
use std::io::Read;
3939

4040
use util::events::MessageSendEventsProvider;
41+
use util::logger;
4142
use util::ser::{Readable, Writeable, Writer, FixedLengthReader, HighZeroBytesDroppedVarInt};
4243

4344
use ln::{PaymentPreimage, PaymentHash, PaymentSecret};
@@ -688,7 +689,11 @@ pub enum ErrorAction {
688689
msg: Option<ErrorMessage>
689690
},
690691
/// The peer did something harmless that we weren't able to process, just log and ignore
692+
// New code should *not* use this. New code must use IgnoreAndLog, below!
691693
IgnoreError,
694+
/// The peer did something harmless that we weren't able to meaningfully process.
695+
/// If the error is logged, log it at the given level.
696+
IgnoreAndLog(logger::Level),
692697
/// The peer did something incorrect. Tell them.
693698
SendErrorMessage {
694699
/// The message to send.

lightning/src/ln/peer_handler.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use ln::wire;
2727
use ln::wire::Encode;
2828
use util::byte_utils;
2929
use util::events::{MessageSendEvent, MessageSendEventsProvider};
30-
use util::logger::Logger;
30+
use util::logger::{Logger, Level};
3131
use routing::network_graph::NetGraphMsgHandler;
3232

3333
use prelude::*;
@@ -717,15 +717,19 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
717717
match e.action {
718718
msgs::ErrorAction::DisconnectPeer { msg: _ } => {
719719
//TODO: Try to push msg
720-
log_debug!(self.logger, "Got Err handling message, disconnecting peer with: {}", e.err);
720+
log_debug!(self.logger, "Error handling message; disconnecting peer with: {}", e.err);
721721
return Err(PeerHandleError{ no_connection_possible: false });
722722
},
723+
msgs::ErrorAction::IgnoreAndLog(level) => {
724+
log_given_level!(self.logger, level, "Error handling message; ignoring: {}", e.err);
725+
continue
726+
},
723727
msgs::ErrorAction::IgnoreError => {
724-
log_debug!(self.logger, "Got ignored error handling message: {}", e.err);
728+
log_debug!(self.logger, "Error handling message; ignoring: {}", e.err);
725729
continue;
726730
},
727731
msgs::ErrorAction::SendErrorMessage { msg } => {
728-
log_debug!(self.logger, "Got Err handling message, sending Error message with: {}", e.err);
732+
log_debug!(self.logger, "Error handling message; sending error message with: {}", e.err);
729733
self.enqueue_message(peer, &msg);
730734
continue;
731735
},
@@ -1284,7 +1288,12 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, L: Deref> PeerManager<D
12841288
self.message_handler.chan_handler.peer_disconnected(&node_id, false);
12851289
}
12861290
},
1287-
msgs::ErrorAction::IgnoreError => {},
1291+
msgs::ErrorAction::IgnoreAndLog(level) => {
1292+
log_given_level!(self.logger, level, "Received a HandleError event to be ignored for node {}", log_pubkey!(node_id));
1293+
},
1294+
msgs::ErrorAction::IgnoreError => {
1295+
log_debug!(self.logger, "Received a HandleError event to be ignored for node {}", log_pubkey!(node_id));
1296+
},
12881297
msgs::ErrorAction::SendErrorMessage { ref msg } => {
12891298
log_trace!(self.logger, "Handling SendErrorMessage HandleError event in peer_handler for node {} with message {}",
12901299
log_pubkey!(node_id),

lightning/src/routing/network_graph.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use ln::msgs::{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement, OptionalFie
2828
use ln::msgs::{QueryChannelRange, ReplyChannelRange, QueryShortChannelIds, ReplyShortChannelIdsEnd};
2929
use ln::msgs;
3030
use util::ser::{Writeable, Readable, Writer};
31-
use util::logger::Logger;
31+
use util::logger::{Logger, Level};
3232
use util::events::{MessageSendEvent, MessageSendEventsProvider};
3333
use util::scid_utils::{block_from_scid, scid_from_parts, MAX_SCID_BLOCK};
3434

@@ -717,7 +717,7 @@ impl NetworkGraph {
717717
Some(node) => {
718718
if let Some(node_info) = node.announcement_info.as_ref() {
719719
if node_info.last_update >= msg.timestamp {
720-
return Err(LightningError{err: "Update older than last processed update".to_owned(), action: ErrorAction::IgnoreError});
720+
return Err(LightningError{err: "Update older than last processed update".to_owned(), action: ErrorAction::IgnoreAndLog(Level::Trace)});
721721
}
722722
}
723723

@@ -838,7 +838,7 @@ impl NetworkGraph {
838838
Self::remove_channel_in_nodes(&mut self.nodes, &entry.get(), msg.short_channel_id);
839839
*entry.get_mut() = chan_info;
840840
} else {
841-
return Err(LightningError{err: "Already have knowledge of channel".to_owned(), action: ErrorAction::IgnoreError})
841+
return Err(LightningError{err: "Already have knowledge of channel".to_owned(), action: ErrorAction::IgnoreAndLog(Level::Trace)})
842842
}
843843
},
844844
BtreeEntry::Vacant(entry) => {
@@ -940,7 +940,7 @@ impl NetworkGraph {
940940
( $target: expr, $src_node: expr) => {
941941
if let Some(existing_chan_info) = $target.as_ref() {
942942
if existing_chan_info.last_update >= msg.timestamp {
943-
return Err(LightningError{err: "Update older than last processed update".to_owned(), action: ErrorAction::IgnoreError});
943+
return Err(LightningError{err: "Update older than last processed update".to_owned(), action: ErrorAction::IgnoreAndLog(Level::Trace)});
944944
}
945945
chan_was_enabled = existing_chan_info.enabled;
946946
} else {

0 commit comments

Comments
 (0)