Skip to content

Commit eb973fa

Browse files
committed
f Skip broadcast if persistence fails
1 parent 36f9834 commit eb973fa

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

lightning/src/util/sweep.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ where
389389
return;
390390
}
391391

392-
let spending_tx_opt;
392+
let mut spending_tx_opt;
393393
{
394394
let mut state_lock = self.sweeper_state.lock().unwrap();
395395
for descriptor in relevant_descriptors {
@@ -413,6 +413,8 @@ where
413413
spending_tx_opt = self.regenerate_spend_if_necessary(&mut *state_lock);
414414
self.persist_state(&*state_lock).unwrap_or_else(|e| {
415415
log_error!(self.logger, "Error persisting OutputSweeper: {:?}", e);
416+
// Skip broadcasting if the persist failed.
417+
spending_tx_opt = None;
416418
});
417419
}
418420

@@ -585,7 +587,7 @@ where
585587
fn filtered_block_connected(
586588
&self, header: &Header, txdata: &chain::transaction::TransactionData, height: u32,
587589
) {
588-
let spending_tx_opt;
590+
let mut spending_tx_opt;
589591
{
590592
let mut state_lock = self.sweeper_state.lock().unwrap();
591593
assert_eq!(state_lock.best_block.block_hash, header.prev_blockhash,
@@ -598,6 +600,8 @@ where
598600

599601
self.persist_state(&*state_lock).unwrap_or_else(|e| {
600602
log_error!(self.logger, "Error persisting OutputSweeper: {:?}", e);
603+
// Skip broadcasting if the persist failed.
604+
spending_tx_opt = None;
601605
});
602606
}
603607

@@ -677,12 +681,14 @@ where
677681
}
678682

679683
fn best_block_updated(&self, header: &Header, height: u32) {
680-
let spending_tx_opt;
684+
let mut spending_tx_opt;
681685
{
682686
let mut state_lock = self.sweeper_state.lock().unwrap();
683687
spending_tx_opt = self.best_block_updated_internal(&mut *state_lock, header, height);
684688
self.persist_state(&*state_lock).unwrap_or_else(|e| {
685689
log_error!(self.logger, "Error persisting OutputSweeper: {:?}", e);
690+
// Skip broadcasting if the persist failed.
691+
spending_tx_opt = None;
686692
});
687693
}
688694

0 commit comments

Comments
 (0)