Skip to content

Commit 76f331e

Browse files
committed
Add comment describing when a completion action can be discarded
In an older PR a reviewer had asked why the discarding of a channel being blocked on another monitor update is okay if the blocked channel has since closed. At the time, this was not actually okay - the monitor updates in the channel weren't moved to the `ChannelManager` on close so the whole pipeline was busted, but with the changes in 4041f08 the handling of channel closes with pending monitor updates is now correct, and so is the existing code block.
1 parent 5e2e4fd commit 76f331e

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

lightning/src/ln/channelmanager.rs

+5
Original file line numberDiff line numberDiff line change
@@ -8938,6 +8938,11 @@ where
89388938
Some((blocked_node_id, blocked_channel_outpoint, blocking_action)), ..
89398939
} = action {
89408940
if let Some(blocked_peer_state) = per_peer_state.get(&blocked_node_id) {
8941+
// If the channel we were blocking has closed, we don't need to
8942+
// worry about it - the blocked monitor update should never have
8943+
// been released from the `Channel` object so it can't have
8944+
// completed, and if the channel closed there's no reason to bother
8945+
// anymore.
89418946
blocked_peer_state.lock().unwrap().actions_blocking_raa_monitor_updates
89428947
.entry(blocked_channel_outpoint.to_channel_id())
89438948
.or_insert_with(Vec::new).push(blocking_action.clone());

0 commit comments

Comments
 (0)