Skip to content

Commit 550cf91

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 f9521a4 commit 550cf91

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8943,6 +8943,12 @@ where
89438943
blocked_peer_state.lock().unwrap().actions_blocking_raa_monitor_updates
89448944
.entry(blocked_channel_outpoint.to_channel_id())
89458945
.or_insert_with(Vec::new).push(blocking_action.clone());
8946+
} else {
8947+
// If the channel we were blocking has closed, we don't need to
8948+
// worry about it - the blocked monitor update should never have
8949+
// been released from the `Channel` object so it can't have
8950+
// completed, and if the channel closed there's no reason to bother
8951+
// anymore.
89468952
}
89478953
}
89488954
}

0 commit comments

Comments
 (0)