Page MenuHomePhabricator

add loadtxoutset & getchainstates RPCs, add functional tests
AbandonedPublic

Authored by PiRK on Tue, Apr 15, 07:02.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

This is a partial backport of core#27596, core#28652, core#29345, core#28589, core#28590, core#28625, core#28639, core#28647, core#28562, core#28666, core#28669, core#28685, core#29215, core#29726, core#29354, core#29394, core#29478, core#29370, core#29617, core#28685, core#30053, core#29973, core#28838, core#29354, core#29478, core#30678, core#31556 and core#30909

Depends on D17933


rpc: add loadtxoutset

Co-authored-by: Sebastian Falbesoner <sebastian.falbesoner@gmail.com>

https://github.com/bitcoin/bitcoin/pull/27596/commits/ce585a9a158476b0ad3296477b922e79f308e795
core#28652
core#29345


rpc: add getchainstates

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

https://github.com/bitcoin/bitcoin/pull/27596/commits/0f64bac6030334d798ae205cd7af4bf248feddd9
https://github.com/bitcoin/bitcoin/pull/28590/commits/a9ef702a877a964bac724a56e2c0b5bee4ea7586


test: add feature_assumeutxo functional test

Initial commit: https://github.com/bitcoin/bitcoin/pull/27596/commits/42cae39356fd20d521aaf99aff1ed85856f3c9f3

core#28589 (race fixes)
core#28590 (getchainstates return a list of chainstates)
core#28625 ( check that loading snapshot not matching AssumeUTXO parameters fails)
https://github.com/bitcoin/bitcoin/pull/28639/commits/fafde92f84fb7c245bc3c1cd946a32c891861e5e
core#28647 (Add assumeutxo test for wrong hash)
core#28652 (fail early if snapshot block hash doesn't match AssumeUTXO parameters)
core#28562 (self.no_op, self.wait_until)
core#28666 (assumeutxo file with unknown block hash)
core#28669 (check au file with changed outpoint index)
core#28685 (add tests for coin maleation)
core#29215 (spend coin from snapshot chainstate after loading)
https://github.com/bitcoin/bitcoin/pull/29726/commits/b7ba60f81a33db876f88b5f9af1e5025d679b5be (add coverage for -reindex and assumeutxo)
core#29354 (Assumeutxo with more than just coinbase transactions)
core#29394 (Add test to ensure failure when mempool not empty)
https://github.com/bitcoin/bitcoin/pull/29478/commits/2bc1ecfaa9b69a20388e913ec64967de2f506cd3 (Remove unnecessary sync_blocks in assumeutxo tests)
core#29478 (Add test for loadtxoutset when headers are not synced)
core#29370 (RPC test for fake nTx and nChainTX values, stale block CheckBlockIndex crash test & assumeutxo snapshot block CheckBlockIndex crash test)
core#29617 (test for coin_height > base_height & amount > money_supply)
https://github.com/bitcoin/bitcoin/pull/28685/commits/f6213929c519d0e615cacd3d6f479f1517be1662 (Check deserialized coins for out of range values)
core#30053 (coverage for "Couldn't open file..." error)
core#29973 (ensure failure when importing a snapshot twice)


test: add assumeutxo wallet test

initial commit: core#28838
https://github.com/bitcoin/bitcoin/pull/29354/commits/fa5cd66f0a47d1b759c93d01524ee4558432c0cc (Assumeutxo with more than just coinbase transactions)
https://github.com/bitcoin/bitcoin/pull/29478/commits/2bc1ecfaa9b69a20388e913ec64967de2f506cd3 (Remove unnecessary sync_blocks in assumeutxo tests)
https://github.com/bitcoin/bitcoin/pull/30678/commits/7e3dbe4180cbeb65e59b53d9fa98509e9189549d (functional test only)
https://github.com/bitcoin/bitcoin/pull/30678/commits/f20fe33e94c6752e5d2ed92511c0bf51a10716ee (Add basic balance coverage)
https://github.com/bitcoin/bitcoin/pull/31556/commits/bc43ecaf6dc0830a27296d3a29428814fed07bb1 (test for balance after snapshot completion)
https://github.com/bitcoin/bitcoin/pull/30909/commits/595edee169045b6735b76ff9721677f0e43f13e5 (import descriptors during background sync)

Test Plan

ninja all check-all

Event Timeline

PiRK requested review of this revision.Tue, Apr 15, 07:02

arcanist created a new diff for some reason

Failed tests logs:

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

------- Stdout: -------
2025-04-15T07:11:57.265000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250415_070641/feature_assumeutxo_285
2025-04-15T07:11:58.984000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-15T07:11:58.985000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-15T07:11:59.030000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-15T07:12:00.711000Z TestFramework (INFO): Test bitcoind should fail when mempool not empty.
2025-04-15T07:12:01.974000Z TestFramework (INFO): Test different scenarios of loading invalid snapshot files
2025-04-15T07:12:01.974000Z TestFramework (INFO):   - snapshot file refering to a block that is not in the assumeutxo parameters
2025-04-15T07:12:01.976000Z TestFramework (INFO):   - snapshot file with wrong number of coins
2025-04-15T07:12:02.252000Z TestFramework (INFO):   - snapshot file with alternated UTXO data
2025-04-15T07:12:03.036000Z TestFramework (INFO): Test bitcoind should fail when file path is invalid.
2025-04-15T07:12:03.037000Z TestFramework (INFO): Loading snapshot into second node from /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250415_070641/feature_assumeutxo_285/node0/regtest/utxos.dat
2025-04-15T07:12:03.309000Z TestFramework (INFO): Submit a stale block that forked off the chain before the snapshot
2025-04-15T07:12:03.318000Z TestFramework (INFO): Submit a spending transaction for a snapshot chainstate coin to the mempool
2025-04-15T07:12:03.328000Z TestFramework (INFO): Restarting node to stop at height 359
2025-04-15T07:12:05.436000Z TestFramework (INFO): Checking that blocks are segmented on disk
2025-04-15T07:12:05.436000Z TestFramework (INFO): Restarted node before snapshot validation completed, reloading...
2025-04-15T07:12:06.587000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 412, in run_test
    n1.submitblock(snapshot_block)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 146, in __call__
    response, status = self._request(
                       ^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 115, in _request
    return self._get_response()
           ^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 187, in _get_response
    http_response = self.__conn.getresponse()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 1374, in getresponse
    response.begin()
  File "/usr/lib/python3.11/http/client.py", line 318, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/http/client.py", line 287, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
2025-04-15T07:12:06.639000Z TestFramework (INFO): Stopping nodes
[node 2] Cleaning up leftover process
[node 1] Cleaning up leftover process
[node 0] Cleaning up leftover process
------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/feature_assumeutxo.py", line 549, in <module>
    AssumeutxoTest().main()
  File "/work/test/functional/test_framework/test_framework.py", line 175, in main
    exit_code = self.shutdown()
                ^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/test_framework.py", line 404, in shutdown
    self.stop_nodes()
  File "/work/test/functional/test_framework/test_framework.py", line 659, in stop_nodes
    node.stop_node(wait=wait, wait_until_stopped=False)
  File "/work/test/functional/test_framework/test_node.py", line 532, in stop_node
    self.stop(wait=wait)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 146, in __call__
    response, status = self._request(
                       ^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 114, in _request
    self.__conn.request(method, path, postdata, headers)
  File "/usr/lib/python3.11/http/client.py", line 1282, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.11/http/client.py", line 1328, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.11/http/client.py", line 1277, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.11/http/client.py", line 1037, in _send_output
    self.send(msg)
  File "/usr/lib/python3.11/http/client.py", line 975, in send
    self.connect()
  File "/usr/lib/python3.11/http/client.py", line 941, in connect
    self.sock = self._create_connection(
                ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/socket.py", line 851, in create_connection
    raise exceptions[0]
  File "/usr/lib/python3.11/socket.py", line 836, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

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

Failed tests logs:

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

------- Stdout: -------
2025-04-16T11:58:07.554000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250416_115316/feature_assumeutxo_285
2025-04-16T11:58:09.395000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-16T11:58:09.396000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-16T11:58:09.410000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-16T11:58:11.095000Z TestFramework (INFO): Test bitcoind should fail when mempool not empty.
2025-04-16T11:58:12.194000Z TestFramework (INFO): Test different scenarios of loading invalid snapshot files
2025-04-16T11:58:12.194000Z TestFramework (INFO):   - snapshot file refering to a block that is not in the assumeutxo parameters
2025-04-16T11:58:12.196000Z TestFramework (INFO):   - snapshot file with wrong number of coins
2025-04-16T11:58:12.324000Z TestFramework (INFO):   - snapshot file with alternated UTXO data
2025-04-16T11:58:12.475000Z TestFramework (INFO): Test bitcoind should fail when file path is invalid.
2025-04-16T11:58:12.476000Z TestFramework (INFO): Loading snapshot into second node from /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250416_115316/feature_assumeutxo_285/node0/regtest/utxos.dat
2025-04-16T11:58:12.633000Z TestFramework (INFO): Submit a stale block that forked off the chain before the snapshot
2025-04-16T11:58:12.644000Z TestFramework (INFO): Submit a spending transaction for a snapshot chainstate coin to the mempool
2025-04-16T11:58:12.656000Z TestFramework (INFO): Restarting node to stop at height 359
2025-04-16T11:58:14.464000Z TestFramework (INFO): Checking that blocks are segmented on disk
2025-04-16T11:58:14.464000Z TestFramework (INFO): Restarted node before snapshot validation completed, reloading...
2025-04-16T11:58:15.296000Z TestFramework (INFO): Ensuring snapshot chain syncs to tip. (399)
2025-04-16T11:58:15.720000Z TestFramework (INFO): Ensuring background validation completes
2025-04-16T11:59:12.631000Z TestFramework (INFO): Re-check nTx and nChainTx values
2025-04-16T11:59:12.740000Z TestFramework (INFO): Restarting node 0 to ensure (Check|Load)BlockIndex passes
2025-04-16T11:59:13.302000Z TestFramework (INFO): Restarting node 1 to ensure (Check|Load)BlockIndex passes
2025-04-16T11:59:14.122000Z TestFramework (INFO): -- Testing all indexes + reindex
2025-04-16T11:59:14.125000Z TestFramework (INFO): Loading snapshot into third node from /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250416_115316/feature_assumeutxo_285/node0/regtest/utxos.dat
2025-04-16T11:59:14.169000Z TestFramework (INFO): Check that restarting with -reindex=1 will delete the snapshot chainstate
2025-04-16T11:59:47.138000Z TestFramework (INFO): Check that restarting with -reindex-chainstate=1 will delete the snapshot chainstate
2025-04-16T11:59:51.126000Z TestFramework (INFO): Check that loading the snapshot again will fail because there is already an active snapshot.
2025-04-16T11:59:52.257000Z TestFramework (INFO): Ensuring background validation completes
2025-04-16T12:00:40.198000Z TestFramework (INFO): Restarting node 0 to ensure (Check|Load)BlockIndex passes
2025-04-16T12:00:40.811000Z TestFramework (INFO): Restarting node 2 to ensure (Check|Load)BlockIndex passes
2025-04-16T12:00:41.733000Z TestFramework (INFO): Test -reindex-chainstate of an assumeutxo-synced node
2025-04-16T12:00:44.155000Z TestFramework (INFO): Test -reindex of an assumeutxo-synced node
2025-04-16T12:01:45.342000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
                    lambda: rpc.getmempoolinfo()["loaded"],
'''
2025-04-16T12:01:45.342000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 536, in run_test
    self.restart_node(2, extra_args=["-reindex=1", *self.extra_args[2]])
  File "/work/test/functional/test_framework/test_framework.py", line 668, in restart_node
    self.start_node(i, extra_args)
  File "/work/test/functional/test_framework/test_framework.py", line 626, in start_node
    node.wait_for_rpc_connection()
  File "/work/test/functional/test_framework/test_node.py", line 386, in wait_for_rpc_connection
    wait_until_helper(
  File "/work/test/functional/test_framework/util.py", line 309, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
                    lambda: rpc.getmempoolinfo()["loaded"],
''' not true after 60.0 seconds
2025-04-16T12:01:45.394000Z TestFramework (INFO): Stopping nodes
[node 2] Cleaning up leftover process
[node 1] Cleaning up leftover process
[node 0] Cleaning up leftover process
------- Stderr: -------
Traceback (most recent call last):
  File "/work/test/functional/feature_assumeutxo.py", line 549, in <module>
    AssumeutxoTest().main()
  File "/work/test/functional/test_framework/test_framework.py", line 175, in main
    exit_code = self.shutdown()
                ^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/test_framework.py", line 404, in shutdown
    self.stop_nodes()
  File "/work/test/functional/test_framework/test_framework.py", line 659, in stop_nodes
    node.stop_node(wait=wait, wait_until_stopped=False)
  File "/work/test/functional/test_framework/test_node.py", line 532, in stop_node
    self.stop(wait=wait)
    ^^^^^^^^^
  File "/work/test/functional/test_framework/test_node.py", line 287, in __getattr__
    assert self.rpc is not None, self._node_msg("Error: RPC not initialized")
           ^^^^^^^^^^^^^^^^^^^^
AssertionError: [node 2] Error: RPC not initialized

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

fix release notes placeholder

forgot to specify --update D17931

Failed tests logs:

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

------- Stdout: -------
2025-04-17T14:36:00.104000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250417_143038/feature_assumeutxo_285
2025-04-17T14:36:01.998000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-17T14:36:01.999000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-17T14:36:02.033000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-17T14:36:02.034000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 150, in __call__
    raise JSONRPCException(response["error"], status)
test_framework.authproxy.JSONRPCException: The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again. (-32603)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 266, in run_test
    self.test_headers_not_synced(dump_output["path"])
  File "/work/test/functional/feature_assumeutxo.py", line 173, in test_headers_not_synced
    assert_raises_rpc_error(
  File "/work/test/functional/test_framework/util.py", line 137, 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 153, in try_rpc
    raise AssertionError(
AssertionError: Expected substring not found in error message:
substring: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are syncing, and call this RPC again.'
error message: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again.'.
2025-04-17T14:36:02.085000Z TestFramework (INFO): Stopping nodes
2025-04-17T14:36:02.338000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250417_143038/feature_assumeutxo_285
2025-04-17T14:36:02.338000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250417_143038/feature_assumeutxo_285/test_framework.log
2025-04-17T14:36:02.338000Z TestFramework (ERROR): 
2025-04-17T14:36:02.338000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-debug/test/tmp/test_runner_₿₵_🏃_20250417_143038/feature_assumeutxo_285' to consolidate all logs
2025-04-17T14:36:02.339000Z TestFramework (ERROR): 
2025-04-17T14:36:02.339000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-04-17T14:36:02.339000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-04-17T14:36:02.339000Z TestFramework (ERROR):

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

Failed tests logs:

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

------- Stdout: -------
2025-04-17T14:35:44.670000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20250417_143416/feature_assumeutxo_285
2025-04-17T14:35:45.517000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-17T14:35:45.517000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-17T14:35:45.540000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-17T14:35:45.540000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 150, in __call__
    raise JSONRPCException(response["error"], status)
test_framework.authproxy.JSONRPCException: The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again. (-32603)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 266, in run_test
    self.test_headers_not_synced(dump_output["path"])
  File "/work/test/functional/feature_assumeutxo.py", line 173, in test_headers_not_synced
    assert_raises_rpc_error(
  File "/work/test/functional/test_framework/util.py", line 137, 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 153, in try_rpc
    raise AssertionError(
AssertionError: Expected substring not found in error message:
substring: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are syncing, and call this RPC again.'
error message: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again.'.
2025-04-17T14:35:45.591000Z TestFramework (INFO): Stopping nodes
2025-04-17T14:35:45.845000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20250417_143416/feature_assumeutxo_285
2025-04-17T14:35:45.845000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20250417_143416/feature_assumeutxo_285/test_framework.log
2025-04-17T14:35:45.845000Z TestFramework (ERROR): 
2025-04-17T14:35:45.846000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-without-wallet/test/tmp/test_runner_₿₵_🏃_20250417_143416/feature_assumeutxo_285' to consolidate all logs
2025-04-17T14:35:45.846000Z TestFramework (ERROR): 
2025-04-17T14:35:45.846000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-04-17T14:35:45.846000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-04-17T14:35:45.847000Z TestFramework (ERROR):

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

Failed tests logs:

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

------- Stdout: -------
2025-04-17T14:38:28.117000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143523/feature_assumeutxo_285
2025-04-17T14:38:29.058000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-17T14:38:29.059000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-17T14:38:29.095000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-17T14:38:29.096000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 150, in __call__
    raise JSONRPCException(response["error"], status)
test_framework.authproxy.JSONRPCException: The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again. (-32603)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 266, in run_test
    self.test_headers_not_synced(dump_output["path"])
  File "/work/test/functional/feature_assumeutxo.py", line 173, in test_headers_not_synced
    assert_raises_rpc_error(
  File "/work/test/functional/test_framework/util.py", line 137, 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 153, in try_rpc
    raise AssertionError(
AssertionError: Expected substring not found in error message:
substring: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are syncing, and call this RPC again.'
error message: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again.'.
2025-04-17T14:38:29.147000Z TestFramework (INFO): Stopping nodes
2025-04-17T14:38:29.400000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143523/feature_assumeutxo_285
2025-04-17T14:38:29.400000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143523/feature_assumeutxo_285/test_framework.log
2025-04-17T14:38:29.400000Z TestFramework (ERROR): 
2025-04-17T14:38:29.400000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143523/feature_assumeutxo_285' to consolidate all logs
2025-04-17T14:38:29.400000Z TestFramework (ERROR): 
2025-04-17T14:38:29.400000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-04-17T14:38:29.400000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-04-17T14:38:29.400000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests with the next upgrade activated: feature_assumeutxo.py ======

------- Stdout: -------
2025-04-17T14:41:06.782000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143835/feature_assumeutxo_285
2025-04-17T14:41:07.660000Z TestFramework (INFO): -- Testing assumeutxo + some indexes + pruning
2025-04-17T14:41:07.661000Z TestFramework (INFO): Creating a UTXO snapshot at height 299
2025-04-17T14:41:07.695000Z TestFramework (INFO): Test loading snapshot when headers are not synced
2025-04-17T14:41:07.696000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/util.py", line 146, in try_rpc
    fun(*args, **kwds)
  File "/work/test/functional/test_framework/coverage.py", line 46, in __call__
    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/test/functional/test_framework/authproxy.py", line 150, in __call__
    raise JSONRPCException(response["error"], status)
test_framework.authproxy.JSONRPCException: The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again. (-32603)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 152, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 142, in _run_test_internal
    self.run_test()
  File "/work/test/functional/feature_assumeutxo.py", line 266, in run_test
    self.test_headers_not_synced(dump_output["path"])
  File "/work/test/functional/feature_assumeutxo.py", line 173, in test_headers_not_synced
    assert_raises_rpc_error(
  File "/work/test/functional/test_framework/util.py", line 137, 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 153, in try_rpc
    raise AssertionError(
AssertionError: Expected substring not found in error message:
substring: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are syncing, and call this RPC again.'
error message: 'The base block header (118a7d5473bccce9b314789e14ce426fc65fb09dfeda0131032bb6d86ed2fd0b) must appear in the headers chain. Make sure all headers are synced, and call this RPC again.'.
2025-04-17T14:41:07.747000Z TestFramework (INFO): Stopping nodes
2025-04-17T14:41:08.000000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143835/feature_assumeutxo_285
2025-04-17T14:41:08.000000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143835/feature_assumeutxo_285/test_framework.log
2025-04-17T14:41:08.000000Z TestFramework (ERROR): 
2025-04-17T14:41:08.000000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_🏃_20250417_143835/feature_assumeutxo_285' to consolidate all logs
2025-04-17T14:41:08.001000Z TestFramework (ERROR): 
2025-04-17T14:41:08.001000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-04-17T14:41:08.001000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-04-17T14:41:08.001000Z TestFramework (ERROR):

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