From 796e747d7bae369a620a082f40a981910e4d2683 Mon Sep 17 00:00:00 2001 From: Hai Nguyen Date: Tue, 24 Sep 2024 13:12:34 +0700 Subject: [PATCH] fix: reset pruned sender numbers on stage drop --- crates/cli/commands/src/stage/drop.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/cli/commands/src/stage/drop.rs b/crates/cli/commands/src/stage/drop.rs index 6571cbaae864..dbfdee32bf4c 100644 --- a/crates/cli/commands/src/stage/drop.rs +++ b/crates/cli/commands/src/stage/drop.rs @@ -5,7 +5,7 @@ use itertools::Itertools; use reth_chainspec::ChainSpec; use reth_cli::chainspec::ChainSpecParser; use reth_db::{static_file::iter_static_files, tables}; -use reth_db_api::transaction::DbTxMut; +use reth_db_api::transaction::{DbTx, DbTxMut}; use reth_db_common::{ init::{insert_genesis_header, insert_genesis_history, insert_genesis_state}, DbTool, @@ -13,6 +13,7 @@ use reth_db_common::{ use reth_node_builder::NodeTypesWithEngine; use reth_node_core::args::StageEnum; use reth_provider::{writer::UnifiedStorageWriter, StaticFileProviderFactory}; +use reth_prune::PruneSegment; use reth_stages::StageId; use reth_static_file_types::StaticFileSegment; @@ -89,6 +90,17 @@ impl> Command { } StageEnum::Senders => { tx.clear::()?; + // Reset pruned numbers to not count them in the next rerun's stage progress + if let Some(mut prune_checkpoint) = + tx.get::(PruneSegment::SenderRecovery)? + { + prune_checkpoint.block_number = None; + prune_checkpoint.tx_number = None; + tx.put::( + PruneSegment::SenderRecovery, + prune_checkpoint, + )?; + } tx.put::( StageId::SenderRecovery.to_string(), Default::default(),