@@ -7672,30 +7672,29 @@ where
76727672 pending.len()
76737673 } else { 0 };
76747674
7675- let channel =
7676- if let Some(ChannelPhase::Funded(chan)) = peer_state.channel_by_id.get_mut(channel_id) {
7677- chan
7678- } else {
7679- if remaining_in_flight != 0 {
7680- return;
7681- }
7682-
7683- let update_actions = peer_state.monitor_update_blocked_actions
7684- .remove(channel_id).unwrap_or(Vec::new());
7685- mem::drop(peer_state_lock);
7686- mem::drop(per_peer_state);
7687- self.handle_monitor_update_completion_actions(update_actions);
7688- return;
7689- };
7675+ let logger = WithContext::from(&self.logger, Some(counterparty_node_id), Some(*channel_id), None);
7676+ log_trace!(logger, "ChannelMonitor updated to {}. {} pending in-flight updates.",
7677+ highest_applied_update_id, remaining_in_flight);
76907678
7691- let logger = WithChannelContext::from(&self.logger, &channel.context, None);
7692- log_trace!(logger, "ChannelMonitor updated to {}. Current highest is {}. {} pending in-flight updates.",
7693- highest_applied_update_id, channel.context.get_latest_monitor_update_id(),
7694- remaining_in_flight);
7695- if remaining_in_flight != 0 || !channel.is_awaiting_monitor_update() {
7679+ if remaining_in_flight != 0 {
76967680 return;
76977681 }
7698- handle_monitor_update_completion!(self, peer_state_lock, peer_state, per_peer_state, channel);
7682+
7683+ if let Some(ChannelPhase::Funded(chan)) = peer_state.channel_by_id.get_mut(channel_id) {
7684+ if chan.is_awaiting_monitor_update() {
7685+ log_trace!(logger, "Channel is open and awaiting update, resuming it");
7686+ handle_monitor_update_completion!(self, peer_state_lock, peer_state, per_peer_state, chan);
7687+ } else {
7688+ log_trace!(logger, "Channel is open but not awaiting update");
7689+ }
7690+ } else {
7691+ let update_actions = peer_state.monitor_update_blocked_actions
7692+ .remove(channel_id).unwrap_or(Vec::new());
7693+ log_trace!(logger, "Channel is closed, applying {} post-update actions", update_actions.len());
7694+ mem::drop(peer_state_lock);
7695+ mem::drop(per_peer_state);
7696+ self.handle_monitor_update_completion_actions(update_actions);
7697+ }
76997698 }
77007699
77017700 /// Accepts a request to open a channel after a [`Event::OpenChannelRequest`].
0 commit comments