From b4f58e451502c6447870a7599797d96a40b39bb8 Mon Sep 17 00:00:00 2001 From: Karim Taam Date: Fri, 12 Jul 2024 16:27:21 +0200 Subject: [PATCH] close worldstate clone correctly Signed-off-by: Karim Taam --- .../ParallelizedConcurrentTransactionProcessor.java | 11 ++++------- .../diffbased/bonsai/worldview/BonsaiWorldState.java | 12 ------------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java index 2357a988a93..46d39be793d 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/parallelization/ParallelizedConcurrentTransactionProcessor.java @@ -136,10 +136,10 @@ public void runTransaction( final BlockHashOperation.BlockHashLookup blockHashLookup, final Wei blobGasPrice, final PrivateMetadataUpdater privateMetadataUpdater) { - try { - final DiffBasedWorldState roundWorldState = - new BonsaiWorldState((BonsaiWorldState) worldState, new NoopBonsaiCachedMerkleTrieLoader()); - + try (final DiffBasedWorldState roundWorldState = + new BonsaiWorldState( + (BonsaiWorldState) worldState, new NoopBonsaiCachedMerkleTrieLoader())) { + roundWorldState.freeze(); // make the clone frozen final ParallelizedTransactionContext.Builder contextBuilder = new ParallelizedTransactionContext.Builder(); final DiffBasedWorldStateUpdateAccumulator roundWorldStateUpdater = @@ -195,9 +195,6 @@ public void traceBeforeRewardTransaction( } parallelizedTransactionContextByLocation.put( transactionLocation, parallelizedTransactionContext); - roundWorldState.close(); - } catch (Exception exception) { - // no-op } } diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java index c54fe50793c..b62805c1fda 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/trie/diffbased/bonsai/worldview/BonsaiWorldState.java @@ -76,18 +76,6 @@ public BonsaiWorldState( diffBasedWorldStateConfig); } - public BonsaiWorldState( - final BonsaiWorldState worldState, - final DiffBasedWorldStateConfig diffBasedWorldStateConfig) { - this( - new BonsaiWorldStateLayerStorage(worldState.getWorldStateStorage()), - worldState.bonsaiCachedMerkleTrieLoader, - worldState.cachedWorldStorageManager, - worldState.trieLogManager, - worldState.accumulator.getEvmConfiguration(), - diffBasedWorldStateConfig); - } - public BonsaiWorldState( final BonsaiWorldState worldState, final BonsaiCachedMerkleTrieLoader cachedMerkleTrieLoader) {