This is a backport of core#21043
Most of the work was already done in D6022. The functional test already exists in abc_rpc_mocktime.py, only the error messages need to be updated.
Differential D11788
Avoid UBSan warning in ProcessMessage(...) and disallow negative mocktime PiRK on Jul 22 2022, 07:19. Authored by
Details
This is a backport of core#21043 Most of the work was already done in D6022. The functional test already exists in abc_rpc_mocktime.py, only the error messages need to be updated. ninja all check-all src/bitcoin-cli help setmocktime
Diff Detail
Event TimelineComment Actions Build Bitcoin ABC Diffs / Diff Testing (build-debug) failed.
Failed tests logs: ====== Bitcoin ABC functional tests: abc_rpc_mocktime.py ====== ------- Stdout: ------- 2022-07-22T07:30:40.463000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_ _20220722_072359/abc_rpc_mocktime_163 2022-07-22T07:30:40.996000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/util.py", line 148, in try_rpc fun(*args, **kwds) File "/work/test/functional/test_framework/coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "/work/test/functional/test_framework/authproxy.py", line 163, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: Mocktime can not be negative: -1. (-8) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_rpc_mocktime.py", line 22, in run_test self.nodes[0].setmocktime, -1) File "/work/test/functional/test_framework/util.py", line 139, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" File "/work/test/functional/test_framework/util.py", line 158, in try_rpc message, e.error['message'])) AssertionError: Expected substring not found in error message: substring: 'Timestamp must be 0 or greater' error message: 'Mocktime can not be negative: -1.'. 2022-07-22T07:30:41.047000Z TestFramework (INFO): Stopping nodes 2022-07-22T07:30:41.248000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_ _20220722_072359/abc_rpc_mocktime_163 2022-07-22T07:30:41.248000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_ _20220722_072359/abc_rpc_mocktime_163/test_framework.log 2022-07-22T07:30:41.248000Z TestFramework (ERROR): 2022-07-22T07:30:41.248000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_ _20220722_072359/abc_rpc_mocktime_163' to consolidate all logs 2022-07-22T07:30:41.248000Z TestFramework (ERROR): 2022-07-22T07:30:41.248000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-22T07:30:41.248000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-22T07:30:41.248000Z TestFramework (ERROR): Each failure log is accessible here: Comment Actions Build Bitcoin ABC Diffs / Diff Testing (build-without-wallet) failed.
Failed tests logs: ====== Bitcoin ABC functional tests: abc_rpc_mocktime.py ====== ------- Stdout: ------- 2022-07-22T07:32:16.417000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_ _20220722_072951/abc_rpc_mocktime_163 2022-07-22T07:32:16.676000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/util.py", line 148, in try_rpc fun(*args, **kwds) File "/work/test/functional/test_framework/coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "/work/test/functional/test_framework/authproxy.py", line 163, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: Mocktime can not be negative: -1. (-8) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_rpc_mocktime.py", line 22, in run_test self.nodes[0].setmocktime, -1) File "/work/test/functional/test_framework/util.py", line 139, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" File "/work/test/functional/test_framework/util.py", line 158, in try_rpc message, e.error['message'])) AssertionError: Expected substring not found in error message: substring: 'Timestamp must be 0 or greater' error message: 'Mocktime can not be negative: -1.'. 2022-07-22T07:32:16.727000Z TestFramework (INFO): Stopping nodes 2022-07-22T07:32:16.878000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_ _20220722_072951/abc_rpc_mocktime_163 2022-07-22T07:32:16.878000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_ _20220722_072951/abc_rpc_mocktime_163/test_framework.log 2022-07-22T07:32:16.878000Z TestFramework (ERROR): 2022-07-22T07:32:16.878000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_ _20220722_072951/abc_rpc_mocktime_163' to consolidate all logs 2022-07-22T07:32:16.878000Z TestFramework (ERROR): 2022-07-22T07:32:16.878000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-22T07:32:16.878000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-22T07:32:16.879000Z TestFramework (ERROR): Each failure log is accessible here: Comment Actions Build Bitcoin ABC Diffs / Diff Testing (build-diff) failed.
Failed tests logs: ====== Bitcoin ABC functional tests: abc_rpc_mocktime.py ====== ------- Stdout: ------- 2022-07-22T07:35:18.596000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073042/abc_rpc_mocktime_163 2022-07-22T07:35:18.947000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/util.py", line 148, in try_rpc fun(*args, **kwds) File "/work/test/functional/test_framework/coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "/work/test/functional/test_framework/authproxy.py", line 163, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: Mocktime can not be negative: -1. (-8) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_rpc_mocktime.py", line 22, in run_test self.nodes[0].setmocktime, -1) File "/work/test/functional/test_framework/util.py", line 139, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" File "/work/test/functional/test_framework/util.py", line 158, in try_rpc message, e.error['message'])) AssertionError: Expected substring not found in error message: substring: 'Timestamp must be 0 or greater' error message: 'Mocktime can not be negative: -1.'. 2022-07-22T07:35:19.001000Z TestFramework (INFO): Stopping nodes 2022-07-22T07:35:19.655000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073042/abc_rpc_mocktime_163 2022-07-22T07:35:19.655000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073042/abc_rpc_mocktime_163/test_framework.log 2022-07-22T07:35:19.655000Z TestFramework (ERROR): 2022-07-22T07:35:19.656000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073042/abc_rpc_mocktime_163' to consolidate all logs 2022-07-22T07:35:19.656000Z TestFramework (ERROR): 2022-07-22T07:35:19.656000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-22T07:35:19.657000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-22T07:35:19.657000Z TestFramework (ERROR): ====== Bitcoin ABC functional tests with the next upgrade activated: abc_rpc_mocktime.py ====== ------- Stdout: ------- 2022-07-22T07:39:54.229000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073538/abc_rpc_mocktime_163 2022-07-22T07:39:54.511000Z TestFramework (ERROR): Assertion failed Traceback (most recent call last): File "/work/test/functional/test_framework/util.py", line 148, in try_rpc fun(*args, **kwds) File "/work/test/functional/test_framework/coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "/work/test/functional/test_framework/authproxy.py", line 163, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: Mocktime can not be negative: -1. (-8) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/work/test/functional/test_framework/test_framework.py", line 136, in main self.run_test() File "/work/test/functional/abc_rpc_mocktime.py", line 22, in run_test self.nodes[0].setmocktime, -1) File "/work/test/functional/test_framework/util.py", line 139, in assert_raises_rpc_error assert try_rpc(code, message, fun, *args, **kwds), "No exception raised" File "/work/test/functional/test_framework/util.py", line 158, in try_rpc message, e.error['message'])) AssertionError: Expected substring not found in error message: substring: 'Timestamp must be 0 or greater' error message: 'Mocktime can not be negative: -1.'. 2022-07-22T07:39:54.562000Z TestFramework (INFO): Stopping nodes 2022-07-22T07:39:54.713000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073538/abc_rpc_mocktime_163 2022-07-22T07:39:54.714000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073538/abc_rpc_mocktime_163/test_framework.log 2022-07-22T07:39:54.714000Z TestFramework (ERROR): 2022-07-22T07:39:54.714000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20220722_073538/abc_rpc_mocktime_163' to consolidate all logs 2022-07-22T07:39:54.714000Z TestFramework (ERROR): 2022-07-22T07:39:54.714000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 2022-07-22T07:39:54.714000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues 2022-07-22T07:39:54.714000Z TestFramework (ERROR): Each failure log is accessible here: Comment Actions Unmerge the test. No need to duplicate this test, though, so don't put it in rpc_uptime.py |