From e1c599e28631087eed6bc8c8348cf50d2348ed61 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 12 Aug 2025 12:10:13 +0800 Subject: [PATCH] check iterator error Signed-off-by: jsvisa --- core/state/statesize.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/state/statesize.go b/core/state/statesize.go index d35d32965c..19d5bc0bc7 100644 --- a/core/state/statesize.go +++ b/core/state/statesize.go @@ -466,6 +466,12 @@ func (g *StateSizeGenerator) iterateTable(ctx context.Context, prefix []byte, na iter := g.db.NewIterator(prefix, nil) defer iter.Release() + // Check for iterator errors before starting iteration + if err := iter.Error(); err != nil { + log.Warn("Iterator error before iteration, database may be closed", "table", name, "err", err) + return 0, 0, err + } + for iter.Next() { count++ bytes += int64(len(iter.Key()) + len(iter.Value()))