diff --git a/bin/reth/src/merkle_debug.rs b/bin/reth/src/merkle_debug.rs index 6e518f50ff..853921eb27 100644 --- a/bin/reth/src/merkle_debug.rs +++ b/bin/reth/src/merkle_debug.rs @@ -156,16 +156,17 @@ impl Command { .walk_range(..)? .collect::, _>>()?; - let clean_result = merkle_stage - .execute( - &mut tx, - ExecInput { - previous_stage: Some((STORAGE_HASHING, block)), - stage_progress: None, - }, - ) - .await; - assert!(clean_result.is_ok(), "Clean state root calculation failed"); + let clean_input = ExecInput { + previous_stage: Some((STORAGE_HASHING, block)), + stage_progress: None, + }; + loop { + let clean_result = merkle_stage.execute(&mut tx, clean_input).await; + assert!(clean_result.is_ok(), "Clean state root calculation failed"); + if clean_result.unwrap().done { + break + } + } let clean_account_trie = tx .cursor_read::()?