From 0b822986455631f240a0772c25ee97ecb6902b9d Mon Sep 17 00:00:00 2001 From: teor Date: Thu, 7 Oct 2021 12:10:58 +1000 Subject: [PATCH] Stop dropping queued block senders without sending a response This causes a rare panic, because Zebra expects every queued sender to send a response. --- zebra-state/src/service/non_finalized_state/queued_blocks.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zebra-state/src/service/non_finalized_state/queued_blocks.rs b/zebra-state/src/service/non_finalized_state/queued_blocks.rs index 27ff4fba5..43d0c7edd 100644 --- a/zebra-state/src/service/non_finalized_state/queued_blocks.rs +++ b/zebra-state/src/service/non_finalized_state/queued_blocks.rs @@ -111,6 +111,11 @@ impl QueuedBlocks { self.blocks.remove(&hash).expect("block is present"); let parent_hash = &expired_block.block.header.previous_block_hash; + // we don't care if the receiver was dropped + let _ = expired_sender.send(Err( + "pruned block at or below the finalized tip height".into() + )); + // TODO: only remove UTXOs if there are no queued blocks with that UTXO // (known_utxos is best-effort, so this is ok for now) for outpoint in expired_block.new_outputs.keys() {