From 03fa7ee85d8bc87b716b21eaf6c8da6c6b526167 Mon Sep 17 00:00:00 2001 From: Alexey Shekhirin Date: Mon, 8 Apr 2024 17:17:29 +0100 Subject: [PATCH] feat(tree): disable long read transaction safety on `newPayload` (#7511) --- crates/blockchain-tree/src/chain.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/blockchain-tree/src/chain.rs b/crates/blockchain-tree/src/chain.rs index 861c3eea7c..abefae5817 100644 --- a/crates/blockchain-tree/src/chain.rs +++ b/crates/blockchain-tree/src/chain.rs @@ -194,8 +194,12 @@ impl AppendableChain { // The usage has to be re-evaluated if that was ever to change. let consistent_view = ConsistentDbView::new_with_latest_tip(externals.provider_factory.clone())?; - let state_provider = - consistent_view.provider_ro()?.state_provider_by_block_number(canonical_fork.number)?; + let state_provider = consistent_view + .provider_ro()? + // State root calculation can take a while, and we're sure no write transaction + // will be open in parallel. See https://github.com/paradigmxyz/reth/issues/7509. + .disable_long_read_transaction_safety() + .state_provider_by_block_number(canonical_fork.number)?; let provider = BundleStateProvider::new(state_provider, bundle_state_data_provider);