cmd/geth: fix legacy receipt detection for empty db (#25609)
This commit is contained in:
parent
c394c308e6
commit
6e6b5087f1
|
@ -175,12 +175,13 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) {
|
||||||
if cfg.Eth.NetworkId == 1 && ghash == params.MainnetGenesisHash {
|
if cfg.Eth.NetworkId == 1 && ghash == params.MainnetGenesisHash {
|
||||||
firstIdx = 46147
|
firstIdx = 46147
|
||||||
}
|
}
|
||||||
isLegacy, _, err := dbHasLegacyReceipts(eth.ChainDb(), firstIdx)
|
isLegacy, firstLegacy, err := dbHasLegacyReceipts(eth.ChainDb(), firstIdx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to check db for legacy receipts", "err", err)
|
log.Error("Failed to check db for legacy receipts", "err", err)
|
||||||
} else if isLegacy {
|
} else if isLegacy {
|
||||||
stack.Close()
|
stack.Close()
|
||||||
utils.Fatalf("Database has receipts with a legacy format. Please run `geth db freezer-migrate`.")
|
log.Error("Database has receipts with a legacy format", "firstLegacy", firstLegacy)
|
||||||
|
utils.Fatalf("Aborting. Please run `geth db freezer-migrate`.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -822,11 +822,15 @@ func dbHasLegacyReceipts(db ethdb.Database, firstIdx uint64) (bool, uint64, erro
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Is first non-empty receipt legacy?
|
|
||||||
first, err := db.Ancient("receipts", firstIdx)
|
first, err := db.Ancient("receipts", firstIdx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, 0, err
|
return false, 0, err
|
||||||
}
|
}
|
||||||
|
// We looped over all receipts and they were all empty
|
||||||
|
if bytes.Equal(first, emptyRLPList) {
|
||||||
|
return false, 0, nil
|
||||||
|
}
|
||||||
|
// Is first non-empty receipt legacy?
|
||||||
legacy, err = types.IsLegacyStoredReceipts(first)
|
legacy, err = types.IsLegacyStoredReceipts(first)
|
||||||
return legacy, firstIdx, err
|
return legacy, firstIdx, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue