mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
init: disallow reindex-chainstate when pruning
This fixes a bug where the node would be stuck in an endless loop when combining these parameters.
This commit is contained in:
parent
91d12344b1
commit
b2813980b8
2 changed files with 7 additions and 1 deletions
|
@ -853,12 +853,14 @@ bool AppInitParameterInteraction(const ArgsManager& args)
|
|||
nLocalServices = ServiceFlags(nLocalServices | NODE_COMPACT_FILTERS);
|
||||
}
|
||||
|
||||
// if using block pruning, then disallow txindex and coinstatsindex
|
||||
if (args.GetIntArg("-prune", 0)) {
|
||||
if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX))
|
||||
return InitError(_("Prune mode is incompatible with -txindex."));
|
||||
if (args.GetBoolArg("-coinstatsindex", DEFAULT_COINSTATSINDEX))
|
||||
return InitError(_("Prune mode is incompatible with -coinstatsindex."));
|
||||
if (args.GetBoolArg("-reindex-chainstate", false)) {
|
||||
return InitError(_("Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead."));
|
||||
}
|
||||
}
|
||||
|
||||
// If -forcednsseed is set to true, ensure -dnsseed has not been set to false
|
||||
|
|
|
@ -141,6 +141,10 @@ class PruneTest(BitcoinTestFramework):
|
|||
expected_msg='Error: Prune mode is incompatible with -coinstatsindex.',
|
||||
extra_args=['-prune=550', '-coinstatsindex'],
|
||||
)
|
||||
self.nodes[0].assert_start_raises_init_error(
|
||||
expected_msg='Error: Prune mode is incompatible with -reindex-chainstate. Use full -reindex instead.',
|
||||
extra_args=['-prune=550', '-reindex-chainstate'],
|
||||
)
|
||||
|
||||
def test_height_min(self):
|
||||
assert os.path.isfile(os.path.join(self.prunedir, "blk00000.dat")), "blk00000.dat is missing, pruning too early"
|
||||
|
|
Loading…
Add table
Reference in a new issue