Page MenuHomePhabricator

[Chronik] Disallow combining -prune and -chronik
ClosedPublic

Authored by tobias_ruck on Mar 14 2023, 15:08.

Details

Reviewers
Fabien
sdulfari
Group Reviewers
Restricted Project
Commits
rABCb0fa955152b4: [Chronik] Disallow combining -prune and -chronik
Summary

Chronik requires all the block data to be present, so we error when pruning is enabled.

Test Plan

ninja && ./test/functional/test_runner.py chronik_disallow_prune

Diff Detail

Event Timeline

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_disallow_prune.py ======

------- Stdout: -------
2023-03-14T15:24:09.385000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20230314_152147/chronik_disallow_prune_217
2023-03-14T15:24:09.910000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 137, in main
    self.run_test()
  File "/work/test/functional/chronik_disallow_prune.py", line 19, in run_test
    self.nodes[0].assert_start_raises_init_error(
  File "/work/test/functional/test_framework/test_node.py", line 726, in assert_start_raises_init_error
    self._raise_assertion_error(
  File "/work/test/functional/test_framework/test_node.py", line 218, in _raise_assertion_error
    raise AssertionError(self._node_msg(msg))
AssertionError: [node 0] Expected message "Error: Prune mode is incompatible with -chronik." does not fully match stderr:
"Error: Error parsing command line arguments: Invalid parameter -chronik"
2023-03-14T15:24:09.961000Z TestFramework (INFO): Stopping nodes
2023-03-14T15:24:09.961000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20230314_152147/chronik_disallow_prune_217
2023-03-14T15:24:09.961000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20230314_152147/chronik_disallow_prune_217/test_framework.log
2023-03-14T15:24:09.961000Z TestFramework (ERROR): 
2023-03-14T15:24:09.961000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_  _20230314_152147/chronik_disallow_prune_217' to consolidate all logs
2023-03-14T15:24:09.961000Z TestFramework (ERROR): 
2023-03-14T15:24:09.961000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-03-14T15:24:09.961000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-03-14T15:24:09.961000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_disallow_prune.py

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_disallow_prune.py ======

------- Stdout: -------
2023-03-14T15:25:35.836000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20230314_151812/chronik_disallow_prune_217
2023-03-14T15:25:36.647000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 137, in main
    self.run_test()
  File "/work/test/functional/chronik_disallow_prune.py", line 19, in run_test
    self.nodes[0].assert_start_raises_init_error(
  File "/work/test/functional/test_framework/test_node.py", line 726, in assert_start_raises_init_error
    self._raise_assertion_error(
  File "/work/test/functional/test_framework/test_node.py", line 218, in _raise_assertion_error
    raise AssertionError(self._node_msg(msg))
AssertionError: [node 0] Expected message "Error: Prune mode is incompatible with -chronik." does not fully match stderr:
"Error: Error parsing command line arguments: Invalid parameter -chronik"
2023-03-14T15:25:36.698000Z TestFramework (INFO): Stopping nodes
2023-03-14T15:25:36.698000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20230314_151812/chronik_disallow_prune_217
2023-03-14T15:25:36.698000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20230314_151812/chronik_disallow_prune_217/test_framework.log
2023-03-14T15:25:36.698000Z TestFramework (ERROR): 
2023-03-14T15:25:36.698000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_  _20230314_151812/chronik_disallow_prune_217' to consolidate all logs
2023-03-14T15:25:36.698000Z TestFramework (ERROR): 
2023-03-14T15:25:36.698000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-03-14T15:25:36.698000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-03-14T15:25:36.698000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_disallow_prune.py

Failed tests logs:

====== Bitcoin ABC functional tests: chronik_disallow_prune.py ======

------- Stdout: -------
2023-03-14T15:24:16.978000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_151943/chronik_disallow_prune_217
2023-03-14T15:24:17.562000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 137, in main
    self.run_test()
  File "/work/test/functional/chronik_disallow_prune.py", line 19, in run_test
    self.nodes[0].assert_start_raises_init_error(
  File "/work/test/functional/test_framework/test_node.py", line 726, in assert_start_raises_init_error
    self._raise_assertion_error(
  File "/work/test/functional/test_framework/test_node.py", line 218, in _raise_assertion_error
    raise AssertionError(self._node_msg(msg))
AssertionError: [node 0] Expected message "Error: Prune mode is incompatible with -chronik." does not fully match stderr:
"Error: Error parsing command line arguments: Invalid parameter -chronik"
2023-03-14T15:24:17.614000Z TestFramework (INFO): Stopping nodes
2023-03-14T15:24:17.614000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_151943/chronik_disallow_prune_217
2023-03-14T15:24:17.614000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_151943/chronik_disallow_prune_217/test_framework.log
2023-03-14T15:24:17.615000Z TestFramework (ERROR): 
2023-03-14T15:24:17.615000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_151943/chronik_disallow_prune_217' to consolidate all logs
2023-03-14T15:24:17.615000Z TestFramework (ERROR): 
2023-03-14T15:24:17.615000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-03-14T15:24:17.616000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-03-14T15:24:17.616000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: chronik_disallow_prune.py ======

------- Stdout: -------
2023-03-14T15:28:32.143000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_152418/chronik_disallow_prune_217
2023-03-14T15:28:32.634000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 137, in main
    self.run_test()
  File "/work/test/functional/chronik_disallow_prune.py", line 19, in run_test
    self.nodes[0].assert_start_raises_init_error(
  File "/work/test/functional/test_framework/test_node.py", line 726, in assert_start_raises_init_error
    self._raise_assertion_error(
  File "/work/test/functional/test_framework/test_node.py", line 218, in _raise_assertion_error
    raise AssertionError(self._node_msg(msg))
AssertionError: [node 0] Expected message "Error: Prune mode is incompatible with -chronik." does not fully match stderr:
"Error: Error parsing command line arguments: Invalid parameter -chronik"
2023-03-14T15:28:32.685000Z TestFramework (INFO): Stopping nodes
2023-03-14T15:28:32.686000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_152418/chronik_disallow_prune_217
2023-03-14T15:28:32.686000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_152418/chronik_disallow_prune_217/test_framework.log
2023-03-14T15:28:32.686000Z TestFramework (ERROR): 
2023-03-14T15:28:32.686000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_  _20230314_152418/chronik_disallow_prune_217' to consolidate all logs
2023-03-14T15:28:32.686000Z TestFramework (ERROR): 
2023-03-14T15:28:32.686000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-03-14T15:28:32.686000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-03-14T15:28:32.686000Z TestFramework (ERROR):

Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_disallow_prune.py
Bitcoin ABC functional tests with the next upgrade activated: chronik_disallow_prune.py

sdulfari requested changes to this revision.Mar 14 2023, 16:26
sdulfari added a subscriber: sdulfari.
sdulfari added inline comments.
src/init.cpp
1785

missing #if ENABLE_CHRONIK ?

test/functional/chronik_disallow_prune.py
17

missing is_chronik_compiled() check

This revision now requires changes to proceed.Mar 14 2023, 16:26
src/init.cpp
1785

Setting the -chronik option should already raise an error if chronik is not built, because there would be no matching addArg. Worth a manual test with bitcoind -chronik though (can be added to the test plan)
EDIT: Or look at the CI :)

This revision is now accepted and ready to land.Mar 14 2023, 23:20