Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit db02933

Browse files
authored
Fixed sync stalling when import queue is full (#691)
1 parent da05763 commit db02933

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

substrate/network/src/sync.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,14 @@ impl<B: BlockT> ChainSync<B> {
237237
let is_best = new_blocks.first().and_then(|b| b.block.header.as_ref()).map(|h| best_seen.as_ref().map_or(false, |n| h.number() >= n));
238238
let origin = if is_best.unwrap_or_default() { BlockOrigin::NetworkBroadcast } else { BlockOrigin::NetworkInitialSync };
239239
let import_queue = self.import_queue.clone();
240+
if let Some((hash, number)) = new_blocks.last()
241+
.and_then(|b| b.block.header.as_ref().map(|h|(b.block.hash.clone(), *h.number())))
242+
{
243+
if number > self.best_queued_number {
244+
self.best_queued_number = number;
245+
self.best_queued_hash = hash;
246+
}
247+
}
240248
import_queue.import_blocks(self, protocol, (origin, new_blocks));
241249
self.maintain_sync(protocol);
242250
}

0 commit comments

Comments
 (0)