Skip to content

Commit 001f685

Browse files
jsvisasiosw
authored andcommitted
cmd/geth: ensure db is closed before exit (ethereum#28150)
1 parent 74cae66 commit 001f685

File tree

4 files changed

+15
-2
lines changed

4 files changed

+15
-2
lines changed

cmd/geth/chaincmd.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,8 @@ func exportChain(ctx *cli.Context) error {
336336
stack, _ := makeConfigNode(ctx)
337337
defer stack.Close()
338338

339-
chain, _ := utils.MakeChain(ctx, stack, true)
339+
chain, db := utils.MakeChain(ctx, stack, true)
340+
defer db.Close()
340341
start := time.Now()
341342

342343
var err error
@@ -376,6 +377,7 @@ func importPreimages(ctx *cli.Context) error {
376377
defer stack.Close()
377378

378379
db := utils.MakeChainDatabase(ctx, stack, false)
380+
defer db.Close()
379381
start := time.Now()
380382

381383
if err := utils.ImportPreimages(db, ctx.Args().First()); err != nil {
@@ -394,6 +396,7 @@ func exportPreimages(ctx *cli.Context) error {
394396
defer stack.Close()
395397

396398
db := utils.MakeChainDatabase(ctx, stack, true)
399+
defer db.Close()
397400
start := time.Now()
398401

399402
if err := utils.ExportPreimages(db, ctx.Args().First()); err != nil {
@@ -405,6 +408,8 @@ func exportPreimages(ctx *cli.Context) error {
405408

406409
func parseDumpConfig(ctx *cli.Context, stack *node.Node) (*state.DumpConfig, ethdb.Database, common.Hash, error) {
407410
db := utils.MakeChainDatabase(ctx, stack, true)
411+
defer db.Close()
412+
408413
var header *types.Header
409414
if ctx.NArg() > 1 {
410415
return nil, nil, common.Hash{}, fmt.Errorf("expected 1 argument (number or hash), got %d", ctx.NArg())

cmd/geth/dbcmd.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,7 @@ func importLDBdata(ctx *cli.Context) error {
594594
close(stop)
595595
}()
596596
db := utils.MakeChainDatabase(ctx, stack, false)
597+
defer db.Close()
597598
return utils.ImportLDBData(db, fName, int64(start), stop)
598599
}
599600

@@ -690,13 +691,16 @@ func exportChaindata(ctx *cli.Context) error {
690691
close(stop)
691692
}()
692693
db := utils.MakeChainDatabase(ctx, stack, true)
694+
defer db.Close()
693695
return utils.ExportChaindata(ctx.Args().Get(1), kind, exporter(db), stop)
694696
}
695697

696698
func showMetaData(ctx *cli.Context) error {
697699
stack, _ := makeConfigNode(ctx)
698700
defer stack.Close()
699701
db := utils.MakeChainDatabase(ctx, stack, true)
702+
defer db.Close()
703+
700704
ancients, err := db.Ancients()
701705
if err != nil {
702706
fmt.Fprintf(os.Stderr, "Error accessing ancients: %v", err)

cmd/geth/snapshot.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,9 @@ func checkDanglingStorage(ctx *cli.Context) error {
245245
stack, _ := makeConfigNode(ctx)
246246
defer stack.Close()
247247

248-
return snapshot.CheckDanglingStorage(utils.MakeChainDatabase(ctx, stack, true))
248+
db := utils.MakeChainDatabase(ctx, stack, true)
249+
defer db.Close()
250+
return snapshot.CheckDanglingStorage(db)
249251
}
250252

251253
// traverseState is a helper function used for pruning verification.

cmd/geth/verkle.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ func verifyVerkle(ctx *cli.Context) error {
115115
defer stack.Close()
116116

117117
chaindb := utils.MakeChainDatabase(ctx, stack, true)
118+
defer chaindb.Close()
118119
headBlock := rawdb.ReadHeadBlock(chaindb)
119120
if headBlock == nil {
120121
log.Error("Failed to load head block")
@@ -163,6 +164,7 @@ func expandVerkle(ctx *cli.Context) error {
163164
defer stack.Close()
164165

165166
chaindb := utils.MakeChainDatabase(ctx, stack, true)
167+
defer chaindb.Close()
166168
var (
167169
rootC common.Hash
168170
keylist [][]byte

0 commit comments

Comments
 (0)