Page MenuHomePhabricator

[Chronik] Add `PluginContext::run_on_tx`
ClosedPublic

Authored by tobias_ruck on Jul 23 2024, 19:32.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC17327131bd7b: [Chronik] Add `PluginContext::run_on_tx`
Summary

This is the "core" of the plugin system; it takes a tx (plus some extra data from the indexer), runs the plugins and returns their outputs as PluginTxOutputs.

This can later then be used by PluginsWriter and the mempool to store the output data generated by the plugins.

Depends on D16525.

Test Plan

cargo -p chronik-plugin-impl test_run_on_tx

Event Timeline

rebase onto chronik-add-plugin-field

Tail of the build log:

  File "/work/test/functional/setup_scripts/../test_framework/util.py", line 296, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
            self.wait_until(lambda: is_finalblock(next_blockhash))
''' not true after 60.0 seconds
2024-07-23T23:39:45.080000Z TestFramework (INFO): Stopping nodes
2024-07-23T23:39:45.233000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240723_233833/setup_scripts/chronik-client_websocket_0
2024-07-23T23:39:45.233000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240723_233833/setup_scripts/chronik-client_websocket_0/test_framework.log
2024-07-23T23:39:45.233000Z TestFramework (ERROR): 
2024-07-23T23:39:45.234000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240723_233833/setup_scripts/chronik-client_websocket_0' to consolidate all logs
2024-07-23T23:39:45.234000Z TestFramework (ERROR): 
2024-07-23T23:39:45.234000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2024-07-23T23:39:45.235000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2024-07-23T23:39:45.235000Z TestFramework (ERROR): 
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_websocket.py started
setup_scripts/chronik-client_websocket.py failed, Duration: 71 s

stdout:

stderr:


TEST                                      | STATUS    | DURATION

setup_scripts/chronik-client_websocket.py | ✖ Failed  | 71 s

ALL                                       | ✖ Failed  | 71 s (accumulated) 
Runtime: 72 s

Test runner for chronik-client_websocket completed with code 1
-----------------------|---------|----------|---------|---------|-----------------------------------
File                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                 
-----------------------|---------|----------|---------|---------|-----------------------------------
All files              |   28.35 |     8.64 |   24.57 |   28.35 |                                   
 chronik-client        |     100 |      100 |     100 |     100 |                                   
  index.ts             |     100 |      100 |     100 |     100 |                                   
 chronik-client/proto  |    21.6 |     6.07 |    13.9 |   21.74 |                                   
  chronik.ts           |     6.1 |     0.83 |    2.54 |    6.09 | ...,3978-3985,3990-4027,4031-4036 
  chronikNode.ts       |   33.03 |    10.56 |    23.6 |   33.28 | ...,4991-5030,5038-5111,5146-5151 
 chronik-client/src    |   65.77 |    42.39 |   63.41 |   65.38 |                                   
  ChronikClient.ts     |    4.24 |        0 |       0 |    4.29 | 33-163,178-222,290-692            
  ChronikClientNode.ts |   90.84 |     72.8 |   96.38 |   90.84 | ...,1068,1078,1103,1115,1121,1127 
  failoverProxy.ts     |   75.22 |    51.61 |   62.06 |   74.52 | ...67,275-285,294,301,305,310,314 
  hex.ts               |   89.47 |       50 |      75 |   87.87 | 58,66-68                          
  validation.ts        |   93.33 |    81.81 |     100 |   92.59 | 33,39                             
-----------------------|---------|----------|---------|---------|-----------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1188']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='4189']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='337']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='3897']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='187']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='761']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1176']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='4148']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

[239/582] Building CXX object src/CMakeFiles/common.dir/cashaddr.cpp.o
[240/582] Building CXX object src/CMakeFiles/script.dir/script/standard.cpp.o
[241/582] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[242/582] Building CXX object src/CMakeFiles/common.dir/common/system.cpp.o
[243/582] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[244/582] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[245/582] Building CXX object src/CMakeFiles/common.dir/common/bloom.cpp.o
[246/582] Building CXX object src/CMakeFiles/common.dir/common/configfile.cpp.o
[247/582] Building CXX object src/CMakeFiles/common.dir/config.cpp.o
[248/582] Building CXX object src/CMakeFiles/common.dir/cashaddrenc.cpp.o
[249/582] Building CXX object src/CMakeFiles/common.dir/chainparams.cpp.o
[250/582] Building CXX object src/CMakeFiles/common.dir/eventloop.cpp.o
[251/582] Building CXX object src/CMakeFiles/common.dir/common/args.cpp.o
[252/582] Building CXX object src/CMakeFiles/common.dir/consensus/merkle.cpp.o
[253/582] Building CXX object src/CMakeFiles/common.dir/feerate.cpp.o
[254/582] Building CXX object src/CMakeFiles/common.dir/coins.cpp.o
[255/582] Building CXX object src/CMakeFiles/common.dir/compressor.cpp.o
[256/582] Building CXX object src/CMakeFiles/common.dir/kernel/chainparams.cpp.o
[257/582] Building CXX object src/CMakeFiles/common.dir/merkleblock.cpp.o
[258/582] Building CXX object src/CMakeFiles/common.dir/key.cpp.o
[259/582] Building CXX object src/CMakeFiles/common.dir/net_permissions.cpp.o
[260/582] Building CXX object src/CMakeFiles/common.dir/netaddress.cpp.o
[261/582] Building CXX object src/CMakeFiles/common.dir/key_io.cpp.o
[262/582] Building CXX object src/CMakeFiles/common.dir/outputtype.cpp.o
[263/582] Building CXX object src/CMakeFiles/common.dir/netbase.cpp.o
[264/582] Building CXX object src/CMakeFiles/common.dir/core_read.cpp.o
[265/582] Building CXX object src/CMakeFiles/common.dir/core_write.cpp.o
[266/582] Building CXX object src/CMakeFiles/common.dir/scheduler.cpp.o
[267/582] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[268/582] Building CXX object src/CMakeFiles/common.dir/policy/policy.cpp.o
[269/582] Building CXX object src/CMakeFiles/common.dir/protocol.cpp.o
[270/582] Building CXX object src/CMakeFiles/common.dir/primitives/block.cpp.o
[271/582] Building CXX object src/CMakeFiles/common.dir/warnings.cpp.o
[272/582] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[273/582] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[274/582] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[275/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/checkpoints.cpp.o
[276/582] Building CXX object src/CMakeFiles/common.dir/networks/abc/chainparamsconstants.cpp.o
[277/582] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[278/582] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[279/582] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[280/582] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[281/582] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[282/582] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[283/582] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[284/582] Linking C static library src/secp256k1/libsecp256k1.a
[285/582] Linking C executable src/secp256k1/internal-bench
[286/582] Linking C executable src/secp256k1/ecmult-bench
[287/582] Linking C executable src/secp256k1/sign-bench
[288/582] Linking C executable src/secp256k1/verify-bench
[289/582] Linking C executable src/secp256k1/recover-bench
[290/582] Linking CXX static library src/libcommon.a
[291/582] Linking CXX static library src/libscript.a
[292/582] Linking CXX static library src/libbitcoinconsensus.a
[293/582] Linking CXX shared library src/libbitcoinconsensus.so.0.29.9
[294/582] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[295/582] Linking CXX executable src/bitcoin-cli
[296/582] Linking CXX executable src/bitcoin-tx
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

  File "/work/test/functional/setup_scripts/../test_framework/util.py", line 296, in wait_until_helper
    raise AssertionError(
AssertionError: Predicate ''''
            self.wait_until(lambda: is_finalblock(next_blockhash))
''' not true after 60.0 seconds
2024-07-24T00:56:42.474000Z TestFramework (INFO): Stopping nodes
2024-07-24T00:56:42.729000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240724_005529/setup_scripts/chronik-client_websocket_0
2024-07-24T00:56:42.729000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240724_005529/setup_scripts/chronik-client_websocket_0/test_framework.log
2024-07-24T00:56:42.730000Z TestFramework (ERROR): 
2024-07-24T00:56:42.730000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20240724_005529/setup_scripts/chronik-client_websocket_0' to consolidate all logs
2024-07-24T00:56:42.730000Z TestFramework (ERROR): 
2024-07-24T00:56:42.731000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2024-07-24T00:56:42.731000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2024-07-24T00:56:42.731000Z TestFramework (ERROR): 
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_websocket.py started
setup_scripts/chronik-client_websocket.py failed, Duration: 73 s

stdout:

stderr:


TEST                                      | STATUS    | DURATION

setup_scripts/chronik-client_websocket.py | ✖ Failed  | 73 s

ALL                                       | ✖ Failed  | 73 s (accumulated) 
Runtime: 73 s

Test runner for chronik-client_websocket completed with code 1
-----------------------|---------|----------|---------|---------|-----------------------------------
File                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                 
-----------------------|---------|----------|---------|---------|-----------------------------------
All files              |   28.35 |     8.64 |   24.57 |   28.35 |                                   
 chronik-client        |     100 |      100 |     100 |     100 |                                   
  index.ts             |     100 |      100 |     100 |     100 |                                   
 chronik-client/proto  |    21.6 |     6.07 |    13.9 |   21.74 |                                   
  chronik.ts           |     6.1 |     0.83 |    2.54 |    6.09 | ...,3978-3985,3990-4027,4031-4036 
  chronikNode.ts       |   33.03 |    10.56 |    23.6 |   33.28 | ...,4991-5030,5038-5111,5146-5151 
 chronik-client/src    |   65.77 |    42.39 |   63.41 |   65.38 |                                   
  ChronikClient.ts     |    4.24 |        0 |       0 |    4.29 | 33-163,178-222,290-692            
  ChronikClientNode.ts |   90.84 |     72.8 |   96.38 |   90.84 | ...,1068,1078,1103,1115,1121,1127 
  failoverProxy.ts     |   75.22 |    51.61 |   62.06 |   74.52 | ...67,275-285,294,301,305,310,314 
  hex.ts               |   89.47 |       50 |      75 |   87.87 | 58,66-68                          
  validation.ts        |   93.33 |    81.81 |     100 |   92.59 | 33,39                             
-----------------------|---------|----------|---------|---------|-----------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1188']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='4189']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='337']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='3897']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='187']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='761']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1176']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='4148']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/chronik-client-integration-tests-junit.xml': No such file or directory
Build chronik-client-integration-tests failed with exit code 1
Fabien requested changes to this revision.Jul 25 2024, 14:38

Can you please add a couple tests with data=b'' and data=[] ? Note this can be unit tests for extract_bytes_or_list instead of the whole run_on_tx

chronik/chronik-plugin-impl/src/context.rs
303 ↗(On Diff #48835)

This case should be unreachable, why is it returning Ok ?

This revision now requires changes to proceed.Jul 25 2024, 14:38
chronik/chronik-plugin-impl/src/context.rs
303 ↗(On Diff #48835)

It's not unreachable, if no plugins are loaded (see L190) this should become a noop

add cases for data=b'' and data=[]

Tail of the build log:

         },
         1: PluginOutput {
             plugins: {
<                0: PluginOutputEntry {
<                    groups: [
<                        [],
<                    ],
<                    data: [
<                        [],
<                    ],
<                },
                 1: PluginOutputEntry {
                     groups: [
                         [
                             50,
                             103,
                             114,
                             112,
                         ],
                     ],
                     data: [
                         [
                             50,
                             100,
                             97,
                             116,
                         ],
                         [
                             51,
                             100,
                             97,
                             116,
                         ],
                     ],
<                },
<            },
<        },
<        2: PluginOutput {
<            plugins: {
<                0: PluginOutputEntry {
<                    groups: [],
<                    data: [],
                 },
             },
         },
     },
 }


note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    context::tests::test_run_on_tx

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

error: test failed, to rerun pass `-p chronik-plugin-impl --lib`
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

    Checking url v2.5.0
    Checking rand v0.8.5
    Checking tracing v0.1.40
    Checking http-body-util v0.1.1
    Checking chronik-util v0.1.0 (/work/chronik/chronik-util)
    Checking sha1 v0.10.6
    Checking ryu v1.0.17
    Checking data-encoding v2.5.0
    Checking smallvec v1.13.2
    Checking utf-8 v0.7.6
    Checking embedded-io v0.4.0
    Checking httpdate v1.0.3
    Checking cobs v0.2.3
   Compiling prost-build v0.11.9
    Checking tungstenite v0.21.0
    Checking postcard v1.0.8
    Checking chronik-plugin-common v0.1.0 (/work/chronik/chronik-plugin-common)
    Checking chronik-plugin v0.1.0 (/work/chronik/chronik-plugin)
    Checking pin-project v1.1.5
    Checking serde_spanned v0.6.6
    Checking toml_datetime v0.6.6
   Compiling pyo3 v0.22.2
    Checking sync_wrapper v0.1.2
    Checking winnow v0.6.13
    Checking seahash v4.1.0
    Checking hyper v1.2.0
    Checking mime v0.3.17
    Checking topo_sort v0.4.0
    Checking axum-core v0.4.3
    Checking tokio-tungstenite v0.21.0
    Checking tower v0.4.13
    Checking memoffset v0.9.1
    Checking serde_json v1.0.115
    Checking serde_urlencoded v0.7.1
    Checking hyper-util v0.1.3
    Checking futures-executor v0.3.30
    Checking serde_path_to_error v0.1.16
    Checking unicode-segmentation v1.11.0
    Checking base64 v0.21.7
    Checking sync_wrapper v1.0.1
    Checking matchit v0.7.3
    Checking unindent v0.2.3
   Compiling chronik-proto v0.1.0 (/work/chronik/chronik-proto)
    Checking tower-http v0.5.2
    Checking futures v0.3.30
    Checking convert_case v0.6.0
    Checking toml_edit v0.22.14
   Compiling chronik-bridge v0.1.0 (/work/chronik/chronik-bridge)
   Compiling librocksdb-sys v0.11.0+8.1.1
    Checking axum v0.7.5
   Compiling pyo3-macros v0.22.2
    Checking toml v0.8.14
    Checking chronik-plugin-impl v0.1.0 (/work/chronik/chronik-plugin-impl)
    Checking rocksdb v0.21.0
    Checking chronik-db v0.1.0 (/work/chronik/chronik-db)
    Checking chronik-indexer v0.1.0 (/work/chronik/chronik-indexer)
    Checking chronik-http v0.1.0 (/work/chronik/chronik-http)
    Finished dev [unoptimized + debuginfo] target(s) in 4m 30s
ninja: build stopped: cannot make progress due to previous errors.
Build build-chronik failed with exit code 1

Tail of the build log:

  File "/work/abc-ci-builds/ecash-lib-integration-tests/test/functional/test_runner.py", line 361, in main
    os.makedirs(tmpdir)
  File "/usr/lib/python3.9/os.py", line 225, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: '/work/abc-ci-builds/ecash-lib-integration-tests/test/tmp/test_runner_₿₵_🏃_20240726_170055'
Test runner completed with code 1
----------------------------|---------|----------|---------|---------|------------------------------
File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   58.05 |    48.17 |   56.13 |   57.97 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/src              |   71.13 |    54.46 |   72.15 |   70.85 |                              
  ecc.ts                    |   57.14 |    83.33 |      40 |   57.14 | 23-31                        
  hash.ts                   |   88.88 |    83.33 |      80 |   88.88 | 14                           
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |     100 |      100 |     100 |     100 |                              
  op.ts                     |      40 |    44.44 |   66.66 |      40 | ...4,107,109,117-122,133-161 
  opcode.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   52.63 |    38.09 |      60 |    50.9 | ...4-135,146,156,166,188-199 
  sigHashType.ts            |   77.77 |       44 |   85.71 |   77.77 | 26-38                        
  tx.ts                     |   93.47 |    79.16 |    90.9 |   93.18 | 123-125                      
  txBuilder.ts              |   52.74 |    46.42 |   66.66 |   51.72 | ...3-107,124-179,214,244-248 
  unsignedTx.ts             |    73.8 |    57.14 |   78.57 |   74.07 | ...3,151,159,184,192,198-201 
 ecash-lib/src/ffi          |   28.26 |    15.94 |   16.98 |   28.98 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |    61.9 |       55 |   39.13 |   62.75 | ...1,197-215,237,250-251,255 
 ecash-lib/src/io           |   59.55 |    60.29 |   70.58 |   58.77 |                              
  bytes.ts                  |     7.4 |    71.42 |    12.5 |     7.4 | 13-64                        
  hex.ts                    |   82.05 |     62.5 |      80 |   82.35 | 41-45,50,58                  
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   85.71 |    83.33 |   66.66 |   85.71 | 15                           
  varsize.ts                |      32 |    36.36 |   66.66 |      32 | 14-24,40-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   83.33 |    68.42 |     100 |   83.33 | 33,43,53,63,79               
  writerlength.ts           |     100 |    83.33 |     100 |     100 | 1                            
 ecash-lib/src/test         |   84.93 |    51.11 |   81.25 |   85.29 |                              
  testRunner.ts             |   84.93 |    51.11 |   81.25 |   85.29 | 69-71,83-85,108,119,162,185  
 ecash-lib/src/token        |   60.33 |    47.14 |   53.33 |   60.11 |                              
  alp.ts                    |   82.92 |    89.47 |   83.33 |   82.92 | 110-123,142                  
  common.ts                 |     100 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |    92.3 |       75 |     100 |   91.66 | 12                           
  slp.ts                    |    28.2 |    13.51 |    7.69 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='724']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='1247']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='224']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='465']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='119']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='212']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='705']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1216']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Failed tests logs:

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

------- Stdout: -------
2024-07-27T00:27:10.408000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-chronik-plugins/test/tmp/test_runner_₿₵_🏃_20240727_002600/wallet_backup_14
2024-07-27T00:27:11.166000Z TestFramework (INFO): Generating initial blockchain
2024-07-27T00:27:14.307000Z TestFramework (INFO): Creating transactions
2024-07-27T00:27:19.588000Z TestFramework (INFO): Backing up
2024-07-27T00:27:19.640000Z TestFramework (INFO): More transactions
2024-07-27T00:27:25.084000Z TestFramework (INFO): Restoring wallets on node 3 using backup files
2024-07-27T00:27:25.250000Z TestFramework (INFO): Restoring using dumped wallet
2024-07-27T00:27:26.815000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
  File "/work/test/functional/test_framework/test_framework.py", line 147, in main
    self._run_test_internal()
  File "/work/test/functional/test_framework/test_framework.py", line 137, in _run_test_internal
    self.run_test()
  File "/work/test/functional/wallet_backup.py", line 244, in run_test
    assert_equal(self.nodes[2].getbalance(), 0)
  File "/work/test/functional/test_framework/util.py", line 60, in assert_equal
    raise AssertionError(
AssertionError: not(50000000.00 == 0)
2024-07-27T00:27:26.866000Z TestFramework (INFO): Stopping nodes
2024-07-27T00:27:27.020000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-chronik-plugins/test/tmp/test_runner_₿₵_🏃_20240727_002600/wallet_backup_14
2024-07-27T00:27:27.020000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-chronik-plugins/test/tmp/test_runner_₿₵_🏃_20240727_002600/wallet_backup_14/test_framework.log
2024-07-27T00:27:27.020000Z TestFramework (ERROR): 
2024-07-27T00:27:27.020000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-chronik-plugins/test/tmp/test_runner_₿₵_🏃_20240727_002600/wallet_backup_14' to consolidate all logs
2024-07-27T00:27:27.020000Z TestFramework (ERROR): 
2024-07-27T00:27:27.020000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2024-07-27T00:27:27.020000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2024-07-27T00:27:27.021000Z TestFramework (ERROR):

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

rerun CI, failure seems unrelated

This revision is now accepted and ready to land.Jul 29 2024, 07:33