From ec75d01b6253992109f66bbec6840ecdeaef1786 Mon Sep 17 00:00:00 2001 From: devopsbo3 <69951731+devopsbo3@users.noreply.github.com> Date: Fri, 10 Nov 2023 12:27:53 -0600 Subject: [PATCH] Revert "core/state/snapshot: check difflayer staleness early (#27255)" This reverts commit 9064a57b8ca6ef96d14e48e25ab660635d1264ed. --- core/state/snapshot/difflayer.go | 12 +----------- core/state/snapshot/snapshot_test.go | 4 ---- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/core/state/snapshot/difflayer.go b/core/state/snapshot/difflayer.go index 203d66f93d..4701acccd3 100644 --- a/core/state/snapshot/difflayer.go +++ b/core/state/snapshot/difflayer.go @@ -292,14 +292,9 @@ func (dl *diffLayer) Account(hash common.Hash) (*Account, error) { // // Note the returned account is not a copy, please don't modify it. func (dl *diffLayer) AccountRLP(hash common.Hash) ([]byte, error) { - dl.lock.RLock() - // Check staleness before reaching further. - if dl.Stale() { - dl.lock.RUnlock() - return nil, ErrSnapshotStale - } // Check the bloom filter first whether there's even a point in reaching into // all the maps in all the layers below + dl.lock.RLock() hit := dl.diffed.Contains(accountBloomHasher(hash)) if !hit { hit = dl.diffed.Contains(destructBloomHasher(hash)) @@ -366,11 +361,6 @@ func (dl *diffLayer) Storage(accountHash, storageHash common.Hash) ([]byte, erro // Check the bloom filter first whether there's even a point in reaching into // all the maps in all the layers below dl.lock.RLock() - // Check staleness before reaching further. - if dl.Stale() { - dl.lock.RUnlock() - return nil, ErrSnapshotStale - } hit := dl.diffed.Contains(storageBloomHasher{accountHash, storageHash}) if !hit { hit = dl.diffed.Contains(destructBloomHasher(accountHash)) diff --git a/core/state/snapshot/snapshot_test.go b/core/state/snapshot/snapshot_test.go index 038bd6df62..249da10aa6 100644 --- a/core/state/snapshot/snapshot_test.go +++ b/core/state/snapshot/snapshot_test.go @@ -185,10 +185,6 @@ func TestDiskLayerExternalInvalidationPartialFlatten(t *testing.T) { // be returned with junk data. This version of the test retains the bottom diff // layer to check the usual mode of operation where the accumulator is retained. func TestDiffLayerExternalInvalidationPartialFlatten(t *testing.T) { - // Un-commenting this triggers the bloom set to be deterministic. The values below - // were used to trigger the flaw described in https://github.com/ethereum/go-ethereum/issues/27254. - // bloomDestructHasherOffset, bloomAccountHasherOffset, bloomStorageHasherOffset = 14, 24, 5 - // Create an empty base layer and a snapshot tree out of it base := &diskLayer{ diskdb: rawdb.NewMemoryDatabase(),