Skip to content

Commit 1d8fc59

Browse files
committed
Make ChannelClosed persistence idempotent and retry on failure
Fall back to the already-persisted record for is_outbound/is_announced when in-memory sets are empty on replay, use insert_or_update to avoid overwriting correct values, and propagate persist failures as ReplayEvent.
1 parent 41f2350 commit 1d8fc59

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

src/event.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1754,13 +1754,14 @@ where
17541754
closed_at,
17551755
};
17561756

1757-
if let Err(e) = self.closed_channel_store.insert(record).await {
1757+
if let Err(e) = self.closed_channel_store.insert_or_update(record).await {
17581758
log_error!(
17591759
self.logger,
17601760
"Failed to persist closed channel {}: {}",
17611761
channel_id,
17621762
e
17631763
);
1764+
return Err(ReplayEvent());
17641765
}
17651766

17661767
let event = Event::ChannelClosed {

0 commit comments

Comments
 (0)