Skip to content

Commit ec751ac

Browse files
Merge branch 'lightningdevkit:main' into issue-527
2 parents 155728f + 775e0db commit ec751ac

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

src/chain/mod.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ use lightning_transaction_sync::EsploraSyncClient;
3636
use lightning_block_sync::gossip::UtxoSource;
3737
use lightning_block_sync::init::{synchronize_listeners, validate_best_block_header};
3838
use lightning_block_sync::poll::{ChainPoller, ChainTip, ValidatedBlockHeader};
39-
use lightning_block_sync::SpvClient;
39+
use lightning_block_sync::{BlockSourceErrorKind, SpvClient};
4040

4141
use bdk_esplora::EsploraAsyncExt;
4242
use bdk_wallet::Update as BdkUpdate;
@@ -425,6 +425,9 @@ impl ChainSource {
425425
"Starting initial synchronization of chain listeners. This might take a while..",
426426
);
427427

428+
let mut backoff = CHAIN_POLLING_INTERVAL_SECS;
429+
const MAX_BACKOFF_SECS: u64 = 300;
430+
428431
loop {
429432
let channel_manager_best_block_hash =
430433
channel_manager.current_best_block().block_hash;
@@ -504,8 +507,24 @@ impl ChainSource {
504507

505508
Err(e) => {
506509
log_error!(logger, "Failed to synchronize chain listeners: {:?}", e);
507-
tokio::time::sleep(Duration::from_secs(CHAIN_POLLING_INTERVAL_SECS))
508-
.await;
510+
if e.kind() == BlockSourceErrorKind::Transient {
511+
log_info!(
512+
logger,
513+
"Transient error syncing chain listeners: {:?}. Retrying in {} seconds.",
514+
e,
515+
backoff
516+
);
517+
tokio::time::sleep(Duration::from_secs(backoff)).await;
518+
backoff = std::cmp::min(backoff * 2, MAX_BACKOFF_SECS);
519+
} else {
520+
log_error!(
521+
logger,
522+
"Persistent error syncing chain listeners: {:?}. Retrying in {} seconds.",
523+
e,
524+
MAX_BACKOFF_SECS
525+
);
526+
tokio::time::sleep(Duration::from_secs(MAX_BACKOFF_SECS)).await;
527+
}
509528
},
510529
}
511530
}

src/logger.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ impl LogWriter for Writer {
153153
#[cfg(not(feature = "uniffi"))]
154154
log::logger().log(
155155
&builder
156+
.target(record.module_path)
156157
.module_path(Some(record.module_path))
157158
.line(Some(record.line))
158159
.args(format_args!("{}", record.args))
@@ -161,6 +162,7 @@ impl LogWriter for Writer {
161162
#[cfg(feature = "uniffi")]
162163
log::logger().log(
163164
&builder
165+
.target(&record.module_path)
164166
.module_path(Some(&record.module_path))
165167
.line(Some(record.line))
166168
.args(format_args!("{}", record.args))

0 commit comments

Comments
 (0)