diff --git a/core/state/pruner/bloom.go b/core/state/pruner/bloom.go index 9f068eaf2d..72315db720 100644 --- a/core/state/pruner/bloom.go +++ b/core/state/pruner/bloom.go @@ -127,6 +127,6 @@ func (bloom *stateBloom) Delete(key []byte) error { panic("not supported") } // reports whether the key is contained. // - If it says yes, the key may be contained // - If it says no, the key is definitely not contained. -func (bloom *stateBloom) Contain(key []byte) bool { - return bloom.bloom.Contains(stateBloomHasher(key)) +func (bloom *stateBloom) Contain(key []byte) (bool, error) { + return bloom.bloom.Contains(stateBloomHasher(key)), nil } diff --git a/core/state/pruner/pruner.go b/core/state/pruner/pruner.go index a8142c51f0..2bd5658e0a 100644 --- a/core/state/pruner/pruner.go +++ b/core/state/pruner/pruner.go @@ -146,7 +146,9 @@ func prune(snaptree *snapshot.Tree, root common.Hash, maindb ethdb.Database, sta if _, exist := middleStateRoots[common.BytesToHash(checkKey)]; exist { log.Debug("Forcibly delete the middle state roots", "hash", common.BytesToHash(checkKey)) } else { - if stateBloom.Contain(checkKey) { + if ok, err := stateBloom.Contain(checkKey); err != nil { + return err + } else if ok { continue } }