From 0bdf07a4e2b252d6a711ac1abc5ddaed0f7f4602 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 19 Sep 2023 01:34:00 +0000 Subject: [PATCH 1/4] cmd/geth: db.Close() Signed-off-by: jsvisa --- cmd/geth/chaincmd.go | 7 ++++++- cmd/geth/dbcmd.go | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index fad2c71e688..b2c0f664988 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -340,7 +340,8 @@ func exportChain(ctx *cli.Context) error { stack, _ := makeConfigNode(ctx) defer stack.Close() - chain, _ := utils.MakeChain(ctx, stack, true) + chain, db := utils.MakeChain(ctx, stack, true) + defer db.Close() start := time.Now() var err error @@ -380,6 +381,7 @@ func importPreimages(ctx *cli.Context) error { defer stack.Close() db := utils.MakeChainDatabase(ctx, stack, false) + defer db.Close() start := time.Now() if err := utils.ImportPreimages(db, ctx.Args().First()); err != nil { @@ -398,6 +400,7 @@ func exportPreimages(ctx *cli.Context) error { defer stack.Close() db := utils.MakeChainDatabase(ctx, stack, true) + defer db.Close() start := time.Now() if err := utils.ExportPreimages(db, ctx.Args().First()); err != nil { @@ -409,6 +412,8 @@ func exportPreimages(ctx *cli.Context) error { func parseDumpConfig(ctx *cli.Context, stack *node.Node) (*state.DumpConfig, ethdb.Database, common.Hash, error) { db := utils.MakeChainDatabase(ctx, stack, true) + defer db.Close() + var header *types.Header if ctx.NArg() > 1 { return nil, nil, common.Hash{}, fmt.Errorf("expected 1 argument (number or hash), got %d", ctx.NArg()) diff --git a/cmd/geth/dbcmd.go b/cmd/geth/dbcmd.go index a1868eb8c33..a87d2370948 100644 --- a/cmd/geth/dbcmd.go +++ b/cmd/geth/dbcmd.go @@ -595,6 +595,7 @@ func importLDBdata(ctx *cli.Context) error { close(stop) }() db := utils.MakeChainDatabase(ctx, stack, false) + defer db.Close() return utils.ImportLDBData(db, fName, int64(start), stop) } @@ -691,6 +692,7 @@ func exportChaindata(ctx *cli.Context) error { close(stop) }() db := utils.MakeChainDatabase(ctx, stack, true) + defer db.Close() return utils.ExportChaindata(ctx.Args().Get(1), kind, exporter(db), stop) } @@ -698,6 +700,8 @@ func showMetaData(ctx *cli.Context) error { stack, _ := makeConfigNode(ctx) defer stack.Close() db := utils.MakeChainDatabase(ctx, stack, true) + defer db.Close() + ancients, err := db.Ancients() if err != nil { fmt.Fprintf(os.Stderr, "Error accessing ancients: %v", err) From 56e794c8bbdf3e8cba4c03c615c2320359442d22 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 19 Sep 2023 01:36:50 +0000 Subject: [PATCH 2/4] cmd/geth: snapshot db.Close Signed-off-by: jsvisa --- cmd/geth/snapshot.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/geth/snapshot.go b/cmd/geth/snapshot.go index 5e1c7847305..be1f9c99df6 100644 --- a/cmd/geth/snapshot.go +++ b/cmd/geth/snapshot.go @@ -252,7 +252,9 @@ func checkDanglingStorage(ctx *cli.Context) error { stack, _ := makeConfigNode(ctx) defer stack.Close() - return snapshot.CheckDanglingStorage(utils.MakeChainDatabase(ctx, stack, true)) + db := utils.MakeChainDatabase(ctx, stack, true) + defer db.Close() + return snapshot.CheckDanglingStorage(db) } // traverseState is a helper function used for pruning verification. From f6dc02c58847ab5237f98191b7e0a73df17568d2 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 19 Sep 2023 01:38:12 +0000 Subject: [PATCH 3/4] cmd/geth: verkle db.Close Signed-off-by: jsvisa --- cmd/geth/verkle.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/geth/verkle.go b/cmd/geth/verkle.go index 9ba2b416716..28a54bcd521 100644 --- a/cmd/geth/verkle.go +++ b/cmd/geth/verkle.go @@ -115,6 +115,7 @@ func verifyVerkle(ctx *cli.Context) error { defer stack.Close() chaindb := utils.MakeChainDatabase(ctx, stack, true) + defer chaindb.Close() headBlock := rawdb.ReadHeadBlock(chaindb) if headBlock == nil { log.Error("Failed to load head block") @@ -163,6 +164,7 @@ func expandVerkle(ctx *cli.Context) error { defer stack.Close() chaindb := utils.MakeChainDatabase(ctx, stack, true) + defer chaindb.Close() var ( rootC common.Hash keylist [][]byte From efcabdfd4515f1ab9822b6c7a207951ce91f8f22 Mon Sep 17 00:00:00 2001 From: jsvisa Date: Tue, 19 Sep 2023 07:45:54 +0000 Subject: [PATCH 4/4] cmd/geth/verkle: go imports Signed-off-by: jsvisa --- cmd/geth/verkle.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/geth/verkle.go b/cmd/geth/verkle.go index 28a54bcd521..e3050bf9288 100644 --- a/cmd/geth/verkle.go +++ b/cmd/geth/verkle.go @@ -115,7 +115,7 @@ func verifyVerkle(ctx *cli.Context) error { defer stack.Close() chaindb := utils.MakeChainDatabase(ctx, stack, true) - defer chaindb.Close() + defer chaindb.Close() headBlock := rawdb.ReadHeadBlock(chaindb) if headBlock == nil { log.Error("Failed to load head block") @@ -164,7 +164,7 @@ func expandVerkle(ctx *cli.Context) error { defer stack.Close() chaindb := utils.MakeChainDatabase(ctx, stack, true) - defer chaindb.Close() + defer chaindb.Close() var ( rootC common.Hash keylist [][]byte