You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We're seeing a bunch of Transaction lock is already acquired, blocking... errors coming from the State Root Task, because we create only one ProofBlindedProviderFactory that's being re-used across the accounts sparse trie, as well as all storage spars tries
Because we calculate storage trie roots in parallel, it's possible for two calls to the blinded provider factory use the same transaction, which causes that log and a bit of wait on the lock
shekhirin
changed the title
Create a database transaction perProofBlindedProviderFactory
Create a database transaction per ProofBlindedProviderFactoryFeb 4, 2025
Problem
We're seeing a bunch of
Transaction lock is already acquired, blocking...
errors coming from the State Root Task, because we create only oneProofBlindedProviderFactory
that's being re-used across the accounts sparse trie, as well as all storage spars triesreth/crates/engine/tree/src/tree/root.rs
Lines 804 to 811 in 740bf04
Because we calculate storage trie roots in parallel, it's possible for two calls to the blinded provider factory use the same transaction, which causes that log and a bit of wait on the lock
reth/crates/engine/tree/src/tree/root.rs
Line 948 in 740bf04
Solution
We should initialize a transaction per
ProofBlindedProviderFactory
, so that they're not re-used across different storage tries.The text was updated successfully, but these errors were encountered: