From 2dc75fb9966a9afc93a235d42ee2a6195144cebb Mon Sep 17 00:00:00 2001 From: Arsenii Kulikov Date: Mon, 18 Nov 2024 18:09:44 +0400 Subject: [PATCH] fix: correctly prune transactions during on-disk reorgs (#12630) --- crates/storage/provider/src/writer/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/storage/provider/src/writer/mod.rs b/crates/storage/provider/src/writer/mod.rs index 1c3894e9cfdb..17dea5a6d51f 100644 --- a/crates/storage/provider/src/writer/mod.rs +++ b/crates/storage/provider/src/writer/mod.rs @@ -285,7 +285,8 @@ where let tx_range = self .database() .transaction_range_by_block_range(block_number + 1..=highest_static_file_block)?; - let total_txs = tx_range.end().saturating_sub(*tx_range.start()); + // We are using end + 1 - start here because the returned range is inclusive. + let total_txs = (tx_range.end() + 1).saturating_sub(*tx_range.start()); // IMPORTANT: we use `block_number+1` to make sure we remove only what is ABOVE the block debug!(target: "provider::storage_writer", ?block_number, "Removing blocks from database above block_number");