From d91f53c9eb76056723f0eded7c1e974ec46e2edb Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Tue, 13 Feb 2024 09:01:08 +0100 Subject: [PATCH] core/state/snapshot: avoid waiting on exited generator in Disable --- core/state/snapshot/snapshot.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/state/snapshot/snapshot.go b/core/state/snapshot/snapshot.go index 58aa375dbb..5c38cb7252 100644 --- a/core/state/snapshot/snapshot.go +++ b/core/state/snapshot/snapshot.go @@ -258,6 +258,14 @@ func (t *Tree) Disable() { for _, layer := range t.layers { switch layer := layer.(type) { case *diskLayer: + + layer.lock.RLock() + generating := layer.genMarker != nil + layer.lock.RUnlock() + if !generating { + // Generator is already aborted or finished + break + } // If the base layer is generating, abort it if layer.genAbort != nil { abort := make(chan *generatorStats)