Add comment describing when a completion action can be discarded 2023-07-all-compl-actions
authorMatt Corallo <git@bluematt.me>
Wed, 5 Jul 2023 17:06:19 +0000 (17:06 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 12 Jul 2023 20:53:10 +0000 (20:53 +0000)
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 4041f0899f86eaf6a0a4576a91918fa54026ac46 the
handling of channel closes with pending monitor updates is now
correct, and so is the existing code block.

lightning/src/ln/channelmanager.rs

index b4eed11fc39e9916fa8564bdf4f5799a81fcec2a..7ec75e20fa36a6f9fdbb00f57a68fa6160d1dc88 100644 (file)
@@ -8943,6 +8943,12 @@ where
                                                                blocked_peer_state.lock().unwrap().actions_blocking_raa_monitor_updates
                                                                        .entry(blocked_channel_outpoint.to_channel_id())
                                                                        .or_insert_with(Vec::new).push(blocking_action.clone());
+                                                       } else {
+                                                               // If the channel we were blocking has closed, we don't need to
+                                                               // worry about it - the blocked monitor update should never have
+                                                               // been released from the `Channel` object so it can't have
+                                                               // completed, and if the channel closed there's no reason to bother
+                                                               // anymore.
                                                        }
                                                }
                                        }