mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-13 11:25:02 -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);
|
nLocalServices = ServiceFlags(nLocalServices | NODE_COMPACT_FILTERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if using block pruning, then disallow txindex and coinstatsindex
|
|
||||||
if (args.GetIntArg("-prune", 0)) {
|
if (args.GetIntArg("-prune", 0)) {
|
||||||
if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX))
|
if (args.GetBoolArg("-txindex", DEFAULT_TXINDEX))
|
||||||
return InitError(_("Prune mode is incompatible with -txindex."));
|
return InitError(_("Prune mode is incompatible with -txindex."));
|
||||||
if (args.GetBoolArg("-coinstatsindex", DEFAULT_COINSTATSINDEX))
|
if (args.GetBoolArg("-coinstatsindex", DEFAULT_COINSTATSINDEX))
|
||||||
return InitError(_("Prune mode is incompatible with -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
|
// 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.',
|
expected_msg='Error: Prune mode is incompatible with -coinstatsindex.',
|
||||||
extra_args=['-prune=550', '-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):
|
def test_height_min(self):
|
||||||
assert os.path.isfile(os.path.join(self.prunedir, "blk00000.dat")), "blk00000.dat is missing, pruning too early"
|
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