Skip to content

Commit 8ce2047

Browse files
authored
cmd/geth: set trie journal for pathdb (#32531)
As in #32060 we introduced the file based journal path, for the other sub command(eg: snapshot, db), we should also pass the directory to the triedb, else the subcommand(eg: `geth snapshot`) failed to run: ```bash geth snapshot verify-state --datadir /geth-data ... INFO [09-02|02:12:29.493] Allocated cache and file handles database=/geth-data/geth/chaindata cache=512.00MiB handles=524,288 INFO [09-02|02:12:32.746] Opened ancient database database=/geth-data/geth/chaindata/ancient/chain readonly=true INFO [09-02|02:12:32.746] Opened Era store datadir=/geth-data/geth/chaindata/ancient/chain/era INFO [09-02|02:12:32.758] State scheme set to already existing scheme=path INFO [09-02|02:12:32.760] Load database journal from disk INFO [09-02|02:12:32.764] Failed to load journal, discard it err="journal not found" INFO [09-02|02:12:32.789] Opened ancient database database=/geth-data/geth/chaindata/ancient/state readonly=true INFO [09-02|02:12:32.790] Initialized path database readonly=true triecache=0.00B statecache=0.00B buffer=0.00B history="entire chain" ERROR[09-02|02:12:32.791] Failed to verify state root=c5458d..4cc785 err="unknown layer: c5458d476da0136a67ef24a93b909aa5c29efa5c5b885dbd1fbaed4e784cc785" ```
1 parent 902ec5b commit 8ce2047

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

cmd/geth/chaincmd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ func initGenesis(ctx *cli.Context) error {
281281
chaindb := utils.MakeChainDatabase(ctx, stack, false)
282282
defer chaindb.Close()
283283

284-
triedb := utils.MakeTrieDatabase(ctx, chaindb, ctx.Bool(utils.CachePreimagesFlag.Name), false, genesis.IsVerkle())
284+
triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, ctx.Bool(utils.CachePreimagesFlag.Name), false, genesis.IsVerkle())
285285
defer triedb.Close()
286286

287287
_, hash, compatErr, err := core.SetupGenesisBlockWithOverride(chaindb, triedb, genesis, &overrides)
@@ -635,7 +635,7 @@ func dump(ctx *cli.Context) error {
635635
if err != nil {
636636
return err
637637
}
638-
triedb := utils.MakeTrieDatabase(ctx, db, true, true, false) // always enable preimage lookup
638+
triedb := utils.MakeTrieDatabase(ctx, stack, db, true, true, false) // always enable preimage lookup
639639
defer triedb.Close()
640640

641641
state, err := state.New(root, state.NewDatabase(triedb, nil))

cmd/geth/dbcmd.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ func dbDumpTrie(ctx *cli.Context) error {
524524
db := utils.MakeChainDatabase(ctx, stack, true)
525525
defer db.Close()
526526

527-
triedb := utils.MakeTrieDatabase(ctx, db, false, true, false)
527+
triedb := utils.MakeTrieDatabase(ctx, stack, db, false, true, false)
528528
defer triedb.Close()
529529

530530
var (
@@ -859,7 +859,7 @@ func inspectHistory(ctx *cli.Context) error {
859859
db := utils.MakeChainDatabase(ctx, stack, true)
860860
defer db.Close()
861861

862-
triedb := utils.MakeTrieDatabase(ctx, db, false, false, false)
862+
triedb := utils.MakeTrieDatabase(ctx, stack, db, false, false, false)
863863
defer triedb.Close()
864864

865865
var (

cmd/geth/snapshot.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ func verifyState(ctx *cli.Context) error {
217217
log.Error("Failed to load head block")
218218
return errors.New("no head block")
219219
}
220-
triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false)
220+
triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false)
221221
defer triedb.Close()
222222

223223
var (
@@ -282,7 +282,7 @@ func traverseState(ctx *cli.Context) error {
282282
chaindb := utils.MakeChainDatabase(ctx, stack, true)
283283
defer chaindb.Close()
284284

285-
triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false)
285+
triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false)
286286
defer triedb.Close()
287287

288288
headBlock := rawdb.ReadHeadBlock(chaindb)
@@ -391,7 +391,7 @@ func traverseRawState(ctx *cli.Context) error {
391391
chaindb := utils.MakeChainDatabase(ctx, stack, true)
392392
defer chaindb.Close()
393393

394-
triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false)
394+
triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false)
395395
defer triedb.Close()
396396

397397
headBlock := rawdb.ReadHeadBlock(chaindb)
@@ -558,7 +558,7 @@ func dumpState(ctx *cli.Context) error {
558558
if err != nil {
559559
return err
560560
}
561-
triedb := utils.MakeTrieDatabase(ctx, db, false, true, false)
561+
triedb := utils.MakeTrieDatabase(ctx, stack, db, false, true, false)
562562
defer triedb.Close()
563563

564564
snapConfig := snapshot.Config{
@@ -640,7 +640,7 @@ func snapshotExportPreimages(ctx *cli.Context) error {
640640
chaindb := utils.MakeChainDatabase(ctx, stack, true)
641641
defer chaindb.Close()
642642

643-
triedb := utils.MakeTrieDatabase(ctx, chaindb, false, true, false)
643+
triedb := utils.MakeTrieDatabase(ctx, stack, chaindb, false, true, false)
644644
defer triedb.Close()
645645

646646
var root common.Hash

cmd/utils/flags.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2269,7 +2269,7 @@ func MakeConsolePreloads(ctx *cli.Context) []string {
22692269
}
22702270

22712271
// MakeTrieDatabase constructs a trie database based on the configured scheme.
2272-
func MakeTrieDatabase(ctx *cli.Context, disk ethdb.Database, preimage bool, readOnly bool, isVerkle bool) *triedb.Database {
2272+
func MakeTrieDatabase(ctx *cli.Context, stack *node.Node, disk ethdb.Database, preimage bool, readOnly bool, isVerkle bool) *triedb.Database {
22732273
config := &triedb.Config{
22742274
Preimages: preimage,
22752275
IsVerkle: isVerkle,
@@ -2285,10 +2285,13 @@ func MakeTrieDatabase(ctx *cli.Context, disk ethdb.Database, preimage bool, read
22852285
config.HashDB = hashdb.Defaults
22862286
return triedb.NewDatabase(disk, config)
22872287
}
2288+
var pathConfig pathdb.Config
22882289
if readOnly {
2289-
config.PathDB = pathdb.ReadOnly
2290+
pathConfig = *pathdb.ReadOnly
22902291
} else {
2291-
config.PathDB = pathdb.Defaults
2292+
pathConfig = *pathdb.Defaults
22922293
}
2294+
pathConfig.JournalDirectory = stack.ResolvePath("triedb")
2295+
config.PathDB = &pathConfig
22932296
return triedb.NewDatabase(disk, config)
22942297
}

0 commit comments

Comments
 (0)