init: disallow reindex-chainstate with optional indexes

It currently leads to corruption (coinstatsindex) or
data duplication (blockfilterindex), so disable it.
This commit is contained in:
Martin Zumsande
2022-04-06 15:28:46 +02:00
parent 62e14285f9
commit dac44fc06f
3 changed files with 34 additions and 1 deletions

View File

@@ -223,6 +223,20 @@ class CoinStatsIndexTest(BitcoinTestFramework):
res10 = index_node.gettxoutsetinfo('muhash')
assert(res8['txouts'] < res10['txouts'])
self.log.info("Test that the index works with -reindex")
self.restart_node(1, extra_args=["-coinstatsindex", "-reindex"])
res11 = index_node.gettxoutsetinfo('muhash')
assert_equal(res11, res10)
self.log.info("Test that -reindex-chainstate is disallowed with coinstatsindex")
self.nodes[1].assert_start_raises_init_error(
expected_msg='Error: -reindex-chainstate option is not compatible with -coinstatsindex. '
'Please temporarily disable coinstatsindex while using -reindex-chainstate, or replace -reindex-chainstate with -reindex to fully rebuild all indexes.',
extra_args=['-coinstatsindex', '-reindex-chainstate'],
)
def _test_use_index_option(self):
self.log.info("Test use_index option for nodes running the index")