Skip to content

Commit fe1cf69

Browse files
authored
Merge pull request #3449 from TheBlueMatt/2024-12-event-processing-logging
Log before and after `Event` processing calls
2 parents 020be44 + e2b964e commit fe1cf69

File tree

4 files changed

+40
-15
lines changed

4 files changed

+40
-15
lines changed

lightning/src/chain/chainmonitor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -573,7 +573,7 @@ where C::Target: chain::Filter,
573573
for funding_txo in mons_to_process {
574574
let mut ev;
575575
match super::channelmonitor::process_events_body!(
576-
self.monitors.read().unwrap().get(&funding_txo).map(|m| &m.monitor), ev, handler(ev).await) {
576+
self.monitors.read().unwrap().get(&funding_txo).map(|m| &m.monitor), self.logger, ev, handler(ev).await) {
577577
Ok(()) => {},
578578
Err(ReplayEvent ()) => {
579579
self.event_notifier.notify();
@@ -914,7 +914,7 @@ impl<ChannelSigner: EcdsaChannelSigner, C: Deref, T: Deref, F: Deref, L: Deref,
914914
/// [`BumpTransaction`]: events::Event::BumpTransaction
915915
fn process_pending_events<H: Deref>(&self, handler: H) where H::Target: EventHandler {
916916
for monitor_state in self.monitors.read().unwrap().values() {
917-
match monitor_state.monitor.process_pending_events(&handler) {
917+
match monitor_state.monitor.process_pending_events(&handler, &self.logger) {
918918
Ok(()) => {},
919919
Err(ReplayEvent ()) => {
920920
self.event_notifier.notify();

lightning/src/chain/channelmonitor.rs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,7 +1236,7 @@ impl<Signer: EcdsaChannelSigner> Writeable for ChannelMonitorImpl<Signer> {
12361236
}
12371237

12381238
macro_rules! _process_events_body {
1239-
($self_opt: expr, $event_to_handle: expr, $handle_event: expr) => {
1239+
($self_opt: expr, $logger: expr, $event_to_handle: expr, $handle_event: expr) => {
12401240
loop {
12411241
let mut handling_res = Ok(());
12421242
let (pending_events, repeated_events);
@@ -1253,8 +1253,11 @@ macro_rules! _process_events_body {
12531253

12541254
let mut num_handled_events = 0;
12551255
for event in pending_events {
1256+
log_trace!($logger, "Handling event {:?}...", event);
12561257
$event_to_handle = event;
1257-
match $handle_event {
1258+
let event_handling_result = $handle_event;
1259+
log_trace!($logger, "Done handling event, result: {:?}", event_handling_result);
1260+
match event_handling_result {
12581261
Ok(()) => num_handled_events += 1,
12591262
Err(e) => {
12601263
// If we encounter an error we stop handling events and make sure to replay
@@ -1614,19 +1617,23 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitor<Signer> {
16141617
///
16151618
/// [`SpendableOutputs`]: crate::events::Event::SpendableOutputs
16161619
/// [`BumpTransaction`]: crate::events::Event::BumpTransaction
1617-
pub fn process_pending_events<H: Deref>(&self, handler: &H) -> Result<(), ReplayEvent> where H::Target: EventHandler {
1620+
pub fn process_pending_events<H: Deref, L: Deref>(&self, handler: &H, logger: &L)
1621+
-> Result<(), ReplayEvent> where H::Target: EventHandler, L::Target: Logger {
16181622
let mut ev;
1619-
process_events_body!(Some(self), ev, handler.handle_event(ev))
1623+
process_events_body!(Some(self), logger, ev, handler.handle_event(ev))
16201624
}
16211625

16221626
/// Processes any events asynchronously.
16231627
///
16241628
/// See [`Self::process_pending_events`] for more information.
1625-
pub async fn process_pending_events_async<Future: core::future::Future<Output = Result<(), ReplayEvent>>, H: Fn(Event) -> Future>(
1626-
&self, handler: &H
1627-
) -> Result<(), ReplayEvent> {
1629+
pub async fn process_pending_events_async<
1630+
Future: core::future::Future<Output = Result<(), ReplayEvent>>, H: Fn(Event) -> Future,
1631+
L: Deref,
1632+
>(
1633+
&self, handler: &H, logger: &L,
1634+
) -> Result<(), ReplayEvent> where L::Target: Logger {
16281635
let mut ev;
1629-
process_events_body!(Some(self), ev, { handler(ev).await })
1636+
process_events_body!(Some(self), logger, ev, { handler(ev).await })
16301637
}
16311638

16321639
#[cfg(test)]

lightning/src/ln/channelmanager.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3390,8 +3390,11 @@ macro_rules! process_events_body {
33903390

33913391
let mut num_handled_events = 0;
33923392
for (event, action_opt) in pending_events {
3393+
log_trace!($self.logger, "Handling event {:?}...", event);
33933394
$event_to_handle = event;
3394-
match $handle_event {
3395+
let event_handling_result = $handle_event;
3396+
log_trace!($self.logger, "Done handling event, result: {:?}", event_handling_result);
3397+
match event_handling_result {
33953398
Ok(()) => {
33963399
if let Some(action) = action_opt {
33973400
post_event_actions.push(action);

lightning/src/onion_message/messenger.rs

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,9 @@ where
14271427
for (node_id, recipient) in self.message_recipients.lock().unwrap().iter_mut() {
14281428
if let OnionMessageRecipient::PendingConnection(_, addresses, _) = recipient {
14291429
if let Some(addresses) = addresses.take() {
1430-
let future = ResultFuture::Pending(handler(Event::ConnectionNeeded { node_id: *node_id, addresses }));
1430+
let event = Event::ConnectionNeeded { node_id: *node_id, addresses };
1431+
log_trace!(self.logger, "Handling event {:?} async...", event);
1432+
let future = ResultFuture::Pending(handler(event));
14311433
futures.push(future);
14321434
}
14331435
}
@@ -1439,11 +1441,13 @@ where
14391441

14401442
for ev in intercepted_msgs {
14411443
if let Event::OnionMessageIntercepted { .. } = ev {} else { debug_assert!(false); }
1444+
log_trace!(self.logger, "Handling event {:?} async...", ev);
14421445
let future = ResultFuture::Pending(handler(ev));
14431446
futures.push(future);
14441447
}
14451448
// Let the `OnionMessageIntercepted` events finish before moving on to peer_connecteds
14461449
let res = MultiResultFuturePoller::new(futures).await;
1450+
log_trace!(self.logger, "Done handling events async, results: {:?}", res);
14471451
let mut res_iter = res.iter().skip(intercepted_msgs_offset);
14481452
drop_handled_events_and_abort!(self, res_iter, self.pending_intercepted_msgs_events);
14491453
}
@@ -1464,10 +1468,12 @@ where
14641468
} else {
14651469
let mut futures = Vec::new();
14661470
for event in peer_connecteds {
1471+
log_trace!(self.logger, "Handling event {:?} async...", event);
14671472
let future = ResultFuture::Pending(handler(event));
14681473
futures.push(future);
14691474
}
14701475
let res = MultiResultFuturePoller::new(futures).await;
1476+
log_trace!(self.logger, "Done handling events async, results: {:?}", res);
14711477
let mut res_iter = res.iter();
14721478
drop_handled_events_and_abort!(self, res_iter, self.pending_peer_connected_events);
14731479
}
@@ -1520,7 +1526,10 @@ where
15201526
for (node_id, recipient) in self.message_recipients.lock().unwrap().iter_mut() {
15211527
if let OnionMessageRecipient::PendingConnection(_, addresses, _) = recipient {
15221528
if let Some(addresses) = addresses.take() {
1523-
let _ = handler.handle_event(Event::ConnectionNeeded { node_id: *node_id, addresses });
1529+
let event = Event::ConnectionNeeded { node_id: *node_id, addresses };
1530+
log_trace!(self.logger, "Handling event {:?}...", event);
1531+
let res = handler.handle_event(event);
1532+
log_trace!(self.logger, "Done handling event, ignoring result: {:?}", res);
15241533
}
15251534
}
15261535
}
@@ -1544,7 +1553,10 @@ where
15441553
let mut handling_intercepted_msgs_failed = false;
15451554
let mut num_handled_intercepted_events = 0;
15461555
for ev in intercepted_msgs {
1547-
match handler.handle_event(ev) {
1556+
log_trace!(self.logger, "Handling event {:?}...", ev);
1557+
let res = handler.handle_event(ev);
1558+
log_trace!(self.logger, "Done handling event, result: {:?}", res);
1559+
match res {
15481560
Ok(()) => num_handled_intercepted_events += 1,
15491561
Err(ReplayEvent ()) => {
15501562
handling_intercepted_msgs_failed = true;
@@ -1566,7 +1578,10 @@ where
15661578

15671579
let mut num_handled_peer_connecteds = 0;
15681580
for ev in peer_connecteds {
1569-
match handler.handle_event(ev) {
1581+
log_trace!(self.logger, "Handling event {:?}...", ev);
1582+
let res = handler.handle_event(ev);
1583+
log_trace!(self.logger, "Done handling event, result: {:?}", res);
1584+
match res {
15701585
Ok(()) => num_handled_peer_connecteds += 1,
15711586
Err(ReplayEvent ()) => {
15721587
self.event_notifier.notify();

0 commit comments

Comments
 (0)