From d235b7746ae3fbf3cd139942eed6dd2c917bd3f5 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 24 May 2022 12:20:22 +0200 Subject: [PATCH 1/3] cmd/geth: exit when freezer has legacy receipts --- cmd/geth/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/geth/config.go b/cmd/geth/config.go index bb003c4c1ae43..17190c2f9810b 100644 --- a/cmd/geth/config.go +++ b/cmd/geth/config.go @@ -176,7 +176,7 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) { if err != nil { log.Error("Failed to check db for legacy receipts", "err", err) } else if isLegacy { - log.Warn("Database has receipts with a legacy format. Please run `geth db freezer-migrate`.") + utils.Fatalf("Database has receipts with a legacy format. Please run `geth db freezer-migrate`.") } } From 8c83415791727daf922bf1e49ef0e4f2f1b78d73 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 24 May 2022 14:51:06 +0200 Subject: [PATCH 2/3] cmd/geth: add --ignore-legacy-receipts flag --- cmd/geth/config.go | 3 ++- cmd/geth/main.go | 1 + cmd/utils/flags.go | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/geth/config.go b/cmd/geth/config.go index 17190c2f9810b..6d2bb2bcb6226 100644 --- a/cmd/geth/config.go +++ b/cmd/geth/config.go @@ -164,7 +164,7 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) { } backend, eth := utils.RegisterEthService(stack, &cfg.Eth) // Warn users to migrate if they have a legacy freezer format. - if eth != nil { + if eth != nil && !ctx.GlobalIsSet(utils.IgnoreLegacyReceiptsFlag.Name) { firstIdx := uint64(0) // Hack to speed up check for mainnet because we know // the first non-empty block. @@ -176,6 +176,7 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) { if err != nil { log.Error("Failed to check db for legacy receipts", "err", err) } else if isLegacy { + stack.Close() utils.Fatalf("Database has receipts with a legacy format. Please run `geth db freezer-migrate`.") } } diff --git a/cmd/geth/main.go b/cmd/geth/main.go index ea8a5187804f8..1e2770ae808e8 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -151,6 +151,7 @@ var ( utils.GpoMaxGasPriceFlag, utils.GpoIgnoreGasPriceFlag, utils.MinerNotifyFullFlag, + utils.IgnoreLegacyReceiptsFlag, configFileFlag, }, utils.NetworkFlags, utils.DatabasePathFlags) diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 4ce16ef90031f..0b28cd09f1418 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -566,6 +566,10 @@ var ( Name: "nocompaction", Usage: "Disables db compaction after import", } + IgnoreLegacyReceiptsFlag = cli.BoolFlag{ + Name: "ignore-legacy-receipts", + Usage: "Geth will start up even if there are legacy receipts in freezer", + } // RPC settings IPCDisabledFlag = cli.BoolFlag{ Name: "ipcdisable", From 745001341f1889caa74f2c79a5333db40cf771eb Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Wed, 25 May 2022 11:41:32 +0200 Subject: [PATCH 3/3] add flag to usage --- cmd/geth/usage.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go index 731992ff7c219..56a3d053d6408 100644 --- a/cmd/geth/usage.go +++ b/cmd/geth/usage.go @@ -227,6 +227,7 @@ var AppHelpFlagGroups = []flags.FlagGroup{ Flags: []cli.Flag{ utils.SnapshotFlag, utils.BloomFilterSizeFlag, + utils.IgnoreLegacyReceiptsFlag, cli.HelpFlag, }, },