ci: run some Bitcoin Core CI jobs #253

pull Sjors wants to merge 3 commits into bitcoin-core:master from Sjors:2026/03/ci-core changing 3 files +563 −0
  1. Sjors commented at 4:26 pm on March 11, 2026: member
    Slightly more elaborate version of #252 with ccache and depends caching.
  2. Sjors commented at 4:31 pm on March 11, 2026: member

    @ryanofsky can you expand the whitelist with actions/cache@* and actions/cache/*@*?

    (that’s what’s causing the new workflows to get ignored, see annotations here: https://github.com/bitcoin-core/libmultiprocess/actions/runs/22963039475)

  3. DrahtBot commented at 4:31 pm on March 11, 2026: none

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK ryanofsky

    If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.

  4. ryanofsky closed this on Mar 11, 2026

  5. ryanofsky reopened this on Mar 11, 2026

  6. Sjors commented at 6:51 pm on March 11, 2026: member
    Thanks, the jobs run now, I’ll debug them later.
  7. Sjors force-pushed on Mar 12, 2026
  8. in .github/workflows/bitcoin-core-ci.yml:337 in 50a7f05802
    332+          ctest --test-dir build -R "ipc|miner_tests" --output-on-failure --timeout 480
    333+
    334+      - name: Run IPC functional tests
    335+        run: |
    336+          LD_LIBRARY_PATH="depends/${{ steps.host.outputs.host }}/lib" \
    337+          build/test/functional/test_runner.py --filter interface_ipc --timeout-factor=8
    


    maflcko commented at 12:09 pm on March 12, 2026:

    should probably run more than once, to catch intermittent ones:

    0./bld-cmake/test/functional/test_runner.py -j $( nproc ) $( printf 'interface_ipc %.0s' {1..200} )  --timeout-factor=10 
    

    Sjors commented at 12:28 pm on March 12, 2026:
    Thanks, I’ll start with 20.

    Sjors commented at 1:03 pm on March 12, 2026:
    Should indeed be fine to bump this 200 or so later.
  9. in .github/workflows/bitcoin-core-ci.yml:332 in 50a7f05802
    327+      - name: Build
    328+        run: cmake --build build "-j$(nproc)"
    329+
    330+      - name: Run IPC and miner unit tests
    331+        run: |
    332+          ctest --test-dir build -R "ipc|miner_tests" --output-on-failure --timeout 480
    


    maflcko commented at 12:10 pm on March 12, 2026:
    same. Also could use the longer --tests-regex instead of -R to be more self-explanatory?
  10. in .github/workflows/bitcoin-core-ci.yml:99 in 50a7f05802 outdated
    94+        if: matrix.packages
    95+        run: |
    96+          sudo apt-get install --no-install-recommends -y ${{ matrix.packages }}
    97+          sudo update-alternatives --install /usr/bin/clang++ clang++ "/usr/bin/clang++-${LLVM_VERSION}" 100
    98+          sudo update-alternatives --install /usr/bin/clang clang "/usr/bin/clang-${LLVM_VERSION}" 100
    99+          sudo update-alternatives --install /usr/bin/llvm-symbolizer llvm-symbolizer "/usr/bin/llvm-symbolizer-${LLVM_VERSION}" 100
    


    maflcko commented at 12:12 pm on March 12, 2026:
    I wonder if we can split the upstream install script into smaller re-useable bash or python scripts, to be used here?

    fanquake commented at 12:30 pm on March 12, 2026:
    I’m not sure about trying to expose bash scripts as a sort of stable CI API, which would essentially give us an undocumented and untested consumer. Inevitably, changes in our repo will break things, and we’ll have another loop of having to re-refactor/change, based on requirements here, that nobody in our repository is accounting for when making changes there.

    Sjors commented at 12:32 pm on March 12, 2026:
    In general we’ll need to wait and see if these Bitcoin Core jobs are maintainable here over the long run. If it becomes more hassle that just opening a draft PR on bitcoin/bitcoin then we might just drop them.
  11. maflcko approved
  12. Sjors force-pushed on Mar 12, 2026
  13. Sjors force-pushed on Mar 12, 2026
  14. Sjors commented at 12:53 pm on March 12, 2026: member
    All green. Pushed again to wire up ccache.
  15. Sjors marked this as ready for review on Mar 12, 2026
  16. maflcko commented at 2:40 pm on March 12, 2026: contributor

    all green

    Well, then this is obviously wrong, because it fails to find any of the countless bugs that still exist.

    It would be good to find at least one of them. Otherwise, this seems pointless?

  17. Sjors commented at 3:25 pm on March 12, 2026: member
    @maflcko this doesn’t include #250 so might not catch those?
  18. fanquake commented at 3:27 pm on March 12, 2026: member

    this doesn’t include #250 so might not catch those?

    If it doesn’t include #250, then shouldn’t it catch all the bugs being fixed by #250? (or any of the others that exist with #250 included, https://github.com/bitcoin/bitcoin/pull/34804#issuecomment-4047157116, assuming they don’t require #250 to be merged).

  19. Sjors commented at 3:32 pm on March 12, 2026: member
    @fanquake the test hooks added in #250 make it more likely to find those bugs in the first place. They all made it through CI initially. But as a sanity check it could make sense if I add those tests here (without fixes).
  20. in .github/workflows/bitcoin-core-ci.yml:370 in cb8a9e8dc1
    365+          ctest --test-dir build --tests-regex "ipc|miner_tests" --output-on-failure --timeout 480
    366+
    367+      - name: Run IPC functional tests
    368+        run: |
    369+          tests=()
    370+          for _ in $(seq 1 20); do
    


    maflcko commented at 3:44 pm on March 12, 2026:

    Why only 20? The full pipeline spends more than 20 minutes building toward this step and then runs those in 17 seconds, which seems wasteful. This could be 200 or 1000 (or anything in between)

    Maybe this will trigger one of the intermittent CI failures seen?


    Sjors commented at 3:52 pm on March 12, 2026:
    It should build a bit faster now that ccache is configured, but I agree we can have it run longer.
  21. in .github/workflows/bitcoin-core-ci.yml:365 in cb8a9e8dc1
    360+      - name: Show ccache stats
    361+        run: ccache --show-stats
    362+
    363+      - name: Run IPC and miner unit tests
    364+        run: |
    365+          ctest --test-dir build --tests-regex "ipc|miner_tests" --output-on-failure --timeout 480
    


    maflcko commented at 3:44 pm on March 12, 2026:
    Same here. Should run more than once. Otherwise, it is basically impossible to trigger any intermittent failure.
  22. maflcko commented at 3:47 pm on March 12, 2026: contributor

    @fanquake the test hooks added in #250 make it more likely to find those bugs in the first place. They all made it through CI initially. But as a sanity check it could make sense if I add those tests here (without fixes).

    I think it makes more sense to try to find the bugs without the new tests. The goal here isn’t to catch bugs in newly added deterministic tests, but to catch intermittent bugs in the vanilla (pre-existing) subtree.

  23. Sjors force-pushed on Mar 12, 2026
  24. Sjors commented at 4:12 pm on March 12, 2026: member
    I added a third commit for tweaking the frequencies. All three jobs now run the unit and functional tests 200 times.
  25. Sjors force-pushed on Mar 12, 2026
  26. Sjors commented at 4:32 pm on March 12, 2026: member

    Test run times:

    • macOS: unit 4s, functional ?s
    • TSAN: unit 15s, functional ?s
    • ASan / UBSan: unit 10s, functional ?s

    Unit tests are still running, from previous experience the functional tests took about 1 second each.

    I’d like to keep the job runtimes under 15 minutes:

    • olddeps is the slowest, takes about 10 minutes
    • gnu32 currently takes 1+ hour, but hopefully #256 speeds it up

    Assuming 3 minutes for setup, 4 minutes for unit tests and 4 minutes for functional tests, I’ll tweak the numbers.

    (also forgot to install ccache on macOS)

  27. Sjors force-pushed on Mar 12, 2026
  28. maflcko commented at 4:44 pm on March 12, 2026: contributor
    nice. Let’s hope one of them fails :sweat_smile:
  29. maflcko commented at 4:47 pm on March 12, 2026: contributor
    ok, none failed :(
  30. Sjors commented at 4:49 pm on March 12, 2026: member
    I’m lowering the unit tests a bit. Also noticed I forgot to run the _miner.py test 🤡
  31. in .github/workflows/bitcoin-core-ci.yml:394 in f03e3a2ab2
    389+          tests=()
    390+          for _ in $(seq 1 "${TSAN_FUNCTIONAL_TEST_RUNS}"); do
    391+            tests+=(interface_ipc)
    392+          done
    393+          LD_LIBRARY_PATH="depends/${{ steps.host.outputs.host }}/lib" \
    394+          build/test/functional/test_runner.py -j "$(nproc)" "${tests[@]}" --timeout-factor=10
    


    maflcko commented at 4:49 pm on March 12, 2026:
    0          build/test/functional/test_runner.py -j "$(nproc * 10)" "${tests[@] * 10}" --timeout-factor=10
    

    not sure how much cpu this is using, but I guess it could be scaled up, so that cpu usage is always 100%?


    Sjors commented at 6:01 pm on March 12, 2026:
    I’ll add an nproc multiplier.
  32. Sjors force-pushed on Mar 12, 2026
  33. in .github/workflows/bitcoin-core-ci.yml:415 in 65abbaf1bf
    410+
    411+      - name: Run IPC functional tests
    412+        run: |
    413+          for _ in $(seq 1 "${TSAN_FUNCTIONAL_TEST_RUNS}"); do
    414+            LD_LIBRARY_PATH="depends/${{ steps.host.outputs.host }}/lib" \
    415+            build/test/functional/test_runner.py --filter='^interface_ipc' --jobs "${PARALLEL}" --timeout-factor=10
    


    maflcko commented at 7:03 pm on March 12, 2026:

    there are only two tests, so the –jobs PARALLEL won’t make any difference, also this is running sequentially over TSAN_FUNCTIONAL_TEST_RUNS

    Maybe the GHA machines just won’t trigger the failures here?

    Has anyone reproduced any of the failures locally, when running the tests?


    Sjors commented at 7:11 pm on March 12, 2026:

    Yeah, I got confused there. You can’t use --filter to run tests multiple times, you have to pass the names in multiple times. The latest push should fix this.

    (well, the next push…)

  34. Sjors force-pushed on Mar 12, 2026
  35. Sjors marked this as a draft on Mar 12, 2026
  36. Sjors force-pushed on Mar 12, 2026
  37. Sjors commented at 7:35 pm on March 12, 2026: member

    I extracted the test runners into a bash script.

    Narrowed the unit tests down to just miner_tests and ipc_tests.

    Still no failure, so I cranked up the number of functional test runs and increased parallelism.

  38. Sjors force-pushed on Mar 12, 2026
  39. Sjors force-pushed on Mar 12, 2026
  40. Sjors commented at 8:11 pm on March 12, 2026: member

    macOS hit a failure:

    https://github.com/bitcoin-core/libmultiprocess/actions/runs/23021186537/job/66857665203?pr=253#step:15:2956

     0stdout:
     12026-03-12T20:08:44.082466Z TestFramework (INFO): PRNG seed is: 871016500598777134
     22026-03-12T20:08:44.111536Z TestFramework (INFO): Initializing test directory /var/folders/t5/f77_gwnj6p95qxy9py3fckx00000gn/T/test_runner__🏃_20260312_200412/interface_ipc_mining_14
     32026-03-12T20:08:44.915954Z TestFramework (INFO): Running Mining interface test
     42026-03-12T20:08:46.346762Z TestFramework (INFO): Running Mining interface early startup test
     52026-03-12T20:08:47.289738Z TestFramework (INFO): Running BlockTemplate interface test
     62026-03-12T20:08:57.030460Z TestFramework (ERROR): Unexpected exception:
     7Traceback (most recent call last):
     8  File "/Users/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_framework.py", line 142, in main
     9    self.run_test()
    10    ~~~~~~~~~~~~~^^
    11  File "/Users/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc_mining.py", line 404, in run_test
    12    self.run_block_template_test()
    13    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
    14  File "/Users/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc_mining.py", line 282, in run_block_template_test
    15    asyncio.run(capnp.run(async_routine()))
    16    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    17  File "/opt/homebrew/Cellar/python@3.14/3.14.3_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/asyncio/runners.py", line 204, in run
    18    return runner.run(main)
    19           ~~~~~~~~~~^^^^^^
    20  File "/opt/homebrew/Cellar/python@3.14/3.14.3_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/asyncio/runners.py", line 127, in run
    21    return self._loop.run_until_complete(task)
    22           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
    23  File "/opt/homebrew/Cellar/python@3.14/3.14.3_1/Frameworks/Python.framework/Versions/3.14/lib/python3.14/asyncio/base_events.py", line 719, in run_until_complete
    24    return future.result()
    25           ~~~~~~~~~~~~~^^
    26  File "capnp/lib/capnp.pyx", line 2083, in run
    27  File "capnp/lib/capnp.pyx", line 2084, in capnp.lib.capnp.run
    28    return await coro
    29  File "/Users/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc_mining.py", line 265, in async_routine
    30    assert template6 is not None
    31           ^^^^^^^^^^^^^^^^^^^^^
    32AssertionError
    

    Though maybe not a very interesting one.

    More likely to be brittleness in the test itself under high CPU pressure:

    0self.log.debug("Wait for another, get one after increase in fees in the mempool")
    1template6 = await wait_and_do(
    2    mining_wait_next_template(template5, stack, ctx, waitoptions),
    3    lambda: self.miniwallet.send_self_transfer(fee_rate=10, from_node=self.nodes[0]))
    4assert template6 is not None
    
  41. Sjors force-pushed on Mar 12, 2026
  42. Sjors commented at 8:33 pm on March 12, 2026: member

    So far it doesn’t seem like we’ve reproduced the issues from #250.

    I slightly lowered the parallel pressure on macOS and slightly the reduced the number of repetitions on the sanitizers to keep them around 10 minutes.

    I split the test script between unit and functional tests so can track their time consumption separately. I also adjusted the functional test runner to abort and print the full log after failure.

  43. Sjors commented at 8:47 pm on March 12, 2026: member

    Ah wonderfull, TSan found a WARNING: ThreadSanitizer: heap-use-after-free (virtual call vs free) (pid=9523: https://github.com/bitcoin-core/libmultiprocess/actions/runs/23022571813/job/66862518537?pr=253#step:21:2005

      02026-03-12T20:39:20.2369314Z 30/600 - interface_ipc.py failed, Duration: 34 s
      12026-03-12T20:39:20.2372491Z 
      22026-03-12T20:39:20.2373694Z stdout:
      32026-03-12T20:39:20.2398774Z 2026-03-12T20:38:45.879762Z TestFramework (INFO): PRNG seed is: 6963492962394618072
      42026-03-12T20:39:20.2494547Z 2026-03-12T20:38:45.907828Z TestFramework (INFO): Initializing test directory /tmp/test_runner__🏃_20260312_203817/interface_ipc_553
      52026-03-12T20:39:20.2499353Z Early exiting after test failure
      62026-03-12T20:39:20.2505644Z 2026-03-12T20:38:56.595317Z TestFramework (INFO): Running echo test
      72026-03-12T20:39:20.2531872Z 2026-03-12T20:38:57.337552Z TestFramework (INFO): Running mining test
      82026-03-12T20:39:20.2533490Z 2026-03-12T20:38:57.987523Z TestFramework (INFO): Running deprecated mining interface test
      92026-03-12T20:39:20.2537984Z 2026-03-12T20:38:58.049581Z TestFramework (INFO): Running disconnect during BlockTemplate.waitNext
     102026-03-12T20:39:20.2543363Z 2026-03-12T20:39:18.610585Z TestFramework (ERROR): Unexpected exception:
     112026-03-12T20:39:20.2546899Z Traceback (most recent call last):
     122026-03-12T20:39:20.2548141Z   File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_framework.py", line 142, in main
     132026-03-12T20:39:20.2553664Z     self.run_test()
     142026-03-12T20:39:20.2560268Z   File "/home/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc.py", line 176, in run_test
     152026-03-12T20:39:20.2624971Z     self.run_unclean_disconnect_test()
     162026-03-12T20:39:20.2626695Z   File "/home/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc.py", line 122, in run_unclean_disconnect_test
     172026-03-12T20:39:20.2672261Z     disconnected_log_check.close()
     182026-03-12T20:39:20.2682422Z   File "/usr/lib/python3.12/contextlib.py", line 618, in close
     192026-03-12T20:39:20.2689108Z     self.__exit__(None, None, None)
     202026-03-12T20:39:20.2689965Z   File "/usr/lib/python3.12/contextlib.py", line 610, in __exit__
     212026-03-12T20:39:20.2716451Z     raise exc_details[1]
     222026-03-12T20:39:20.2751887Z   File "/usr/lib/python3.12/contextlib.py", line 595, in __exit__
     232026-03-12T20:39:20.2786300Z     if cb(*exc_details):
     242026-03-12T20:39:20.2787496Z        ^^^^^^^^^^^^^^^^
     252026-03-12T20:39:20.2827987Z   File "/usr/lib/python3.12/contextlib.py", line 144, in __exit__
     262026-03-12T20:39:20.2838987Z     next(self.gen)
     272026-03-12T20:39:20.2868811Z   File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_node.py", line 607, in assert_debug_log
     282026-03-12T20:39:20.2870372Z     self._raise_assertion_error(f'Expected message(s) {remaining_expected!s} '
     292026-03-12T20:39:20.2885154Z   File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_node.py", line 241, in _raise_assertion_error
     302026-03-12T20:39:20.2893910Z     raise AssertionError(self._node_msg(msg))
     312026-03-12T20:39:20.3039037Z AssertionError: [node 0] Expected message(s) ['canceled while executing'] not found in log:
     322026-03-12T20:39:20.3040376Z 
     332026-03-12T20:39:20.3041581Z  - 2026-03-12T20:38:58.573383Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
     342026-03-12T20:39:20.3204651Z  - 2026-03-12T20:38:58.574563Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected.
     352026-03-12T20:39:20.3210186Z  - 2026-03-12T20:38:58.574851Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE
     362026-03-12T20:39:20.3229625Z  - 2026-03-12T20:38:58.575439Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} IPC server executing request [#15](/bitcoin-core-multiprocess/15/)
     372026-03-12T20:39:20.3231058Z 
     382026-03-12T20:39:20.3231067Z 
     392026-03-12T20:39:20.3231815Z 2026-03-12T20:39:18.686000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
     402026-03-12T20:39:20.3238760Z 2026-03-12T20:39:18.686172Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner__🏃_20260312_203817/interface_ipc_553
     412026-03-12T20:39:20.3384726Z 2026-03-12T20:39:18.686254Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/test_framework.log
     422026-03-12T20:39:20.3460918Z 2026-03-12T20:39:18.686477Z TestFramework (ERROR): 
     432026-03-12T20:39:20.3495523Z 2026-03-12T20:39:18.686646Z TestFramework (ERROR): Hint: Call /home/runner/work/libmultiprocess/libmultiprocess/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20260312_203817/interface_ipc_553' to consolidate all logs
     442026-03-12T20:39:20.3558861Z 2026-03-12T20:39:18.686725Z TestFramework (ERROR): 
     452026-03-12T20:39:20.3576706Z 2026-03-12T20:39:18.686789Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
     462026-03-12T20:39:20.3578917Z 2026-03-12T20:39:18.686879Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
     472026-03-12T20:39:20.3583520Z 2026-03-12T20:39:18.686945Z TestFramework (ERROR): 
     482026-03-12T20:39:20.3584036Z 
     492026-03-12T20:39:20.3584043Z 
     502026-03-12T20:39:20.3638386Z stderr:
     512026-03-12T20:39:20.3677099Z [node 0] Cleaning up leftover process
     522026-03-12T20:39:20.3677727Z 
     532026-03-12T20:39:20.3677734Z 
     542026-03-12T20:39:20.3678164Z Combine the logs and print the last 99999999 lines ...
     552026-03-12T20:39:20.3754614Z 
     562026-03-12T20:39:20.3754990Z ============
     572026-03-12T20:39:20.3807018Z Combined log for /tmp/test_runner__🏃_20260312_203817/interface_ipc_553:
     582026-03-12T20:39:20.3815796Z ============
     592026-03-12T20:39:20.3816155Z 
     602026-03-12T20:39:20.3816734Z  test  2026-03-12T20:38:45.879762Z TestFramework (INFO): PRNG seed is: 6963492962394618072 
     612026-03-12T20:39:20.3828277Z  test  2026-03-12T20:38:45.879951Z TestFramework (DEBUG): Setting up network thread 
     622026-03-12T20:39:20.3841000Z  test  2026-03-12T20:38:45.907828Z TestFramework (INFO): Initializing test directory /tmp/test_runner__🏃_20260312_203817/interface_ipc_553 
     632026-03-12T20:39:20.3933242Z  test  2026-03-12T20:38:45.908062Z TestFramework (DEBUG): Copy cache directory /home/runner/work/libmultiprocess/libmultiprocess/build/test/cache/node0 to node 0 
     642026-03-12T20:39:20.3944060Z  test  2026-03-12T20:38:46.115478Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up 
     652026-03-12T20:39:20.3950722Z  node0 2026-03-12T20:38:46.828385Z [init] [init/common.cpp:156] [LogPackageVersion] Bitcoin Core version v31.99.0-5608b8ce9e0f-dirty (debug build) 
     662026-03-12T20:39:20.4024427Z  node0 2026-03-12T20:38:46.855480Z [init] [init.cpp:770] [InitParameterInteraction] parameter interaction: -bind set -> setting -listen=1 
     672026-03-12T20:39:20.4044159Z  node0 2026-03-12T20:38:46.857372Z [init] [init/common.cpp:102] [SetLoggingCategories] Log output may contain privacy-sensitive information. Be cautious when sharing logs. 
     682026-03-12T20:39:20.4046503Z  node0 2026-03-12T20:38:46.890454Z [init] [kernel/context.cpp:20] [operator()] Using the 'x86_shani(1way;2way)' SHA256 implementation 
     692026-03-12T20:39:20.4142468Z  node0 2026-03-12T20:38:47.065475Z [init] [random.cpp:110] [ReportHardwareRand] Using RdSeed as an additional entropy source 
     702026-03-12T20:39:20.4148863Z  node0 2026-03-12T20:38:47.065520Z [init] [random.cpp:113] [ReportHardwareRand] Using RdRand as an additional entropy source 
     712026-03-12T20:39:20.4163399Z  node0 2026-03-12T20:38:47.157657Z [init] [init/common.cpp:124] [StartLogging] Default data directory /home/runner/.bitcoin 
     722026-03-12T20:39:20.4166154Z  node0 2026-03-12T20:38:47.157797Z [init] [init/common.cpp:125] [StartLogging] Using data directory /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest 
     732026-03-12T20:39:20.4170847Z  node0 2026-03-12T20:38:47.157994Z [init] [init/common.cpp:134] [StartLogging] Config file: /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/bitcoin.conf 
     742026-03-12T20:39:20.4174394Z  node0 2026-03-12T20:38:47.158174Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: regtest="1" 
     752026-03-12T20:39:20.4224263Z  node0 2026-03-12T20:38:47.158346Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] bind="127.0.0.1" 
     762026-03-12T20:39:20.4243327Z  node0 2026-03-12T20:38:47.158484Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] connect="0" 
     772026-03-12T20:39:20.4264740Z  node0 2026-03-12T20:38:47.158611Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] discover="0" 
     782026-03-12T20:39:20.4267864Z  node0 2026-03-12T20:38:47.158735Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] dnsseed="0" 
     792026-03-12T20:39:20.4284515Z  node0 2026-03-12T20:38:47.158879Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] fallbackfee="0.0002" 
     802026-03-12T20:39:20.4324763Z  node0 2026-03-12T20:38:47.159024Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] fixedseeds="0" 
     812026-03-12T20:39:20.4373021Z  node0 2026-03-12T20:38:47.159168Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] keypool="1" 
     822026-03-12T20:39:20.4374806Z  node0 2026-03-12T20:38:47.159316Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] listenonion="0" 
     832026-03-12T20:39:20.4471590Z  node0 2026-03-12T20:38:47.159445Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] maxconnections="94" 
     842026-03-12T20:39:20.4567302Z  node0 2026-03-12T20:38:47.159572Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] natpmp="0" 
     852026-03-12T20:39:20.4614985Z  node0 2026-03-12T20:38:47.159688Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] par="2" 
     862026-03-12T20:39:20.4617642Z  node0 2026-03-12T20:38:47.159820Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] peertimeout="999999999" 
     872026-03-12T20:39:20.4651063Z  node0 2026-03-12T20:38:47.159947Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] port="12649" 
     882026-03-12T20:39:20.4675479Z  node0 2026-03-12T20:38:47.160092Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] printtoconsole="0" 
     892026-03-12T20:39:20.4729997Z  node0 2026-03-12T20:38:47.207312Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] rpcdoccheck="1" 
     902026-03-12T20:39:20.4731761Z  node0 2026-03-12T20:38:47.207557Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] rpcport="17649" 
     912026-03-12T20:39:20.4739609Z  node0 2026-03-12T20:38:47.207732Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] rpcservertimeout="99000" 
     922026-03-12T20:39:20.4756366Z  node0 2026-03-12T20:38:47.207892Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] rpcthreads="2" 
     932026-03-12T20:39:20.4783861Z  node0 2026-03-12T20:38:47.208045Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] server="1" 
     942026-03-12T20:39:20.4825358Z  node0 2026-03-12T20:38:47.208186Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] shrinkdebugfile="0" 
     952026-03-12T20:39:20.4830397Z  node0 2026-03-12T20:38:47.208354Z [init] [common/args.cpp:884] [logArgsPrefix] Config file arg: [regtest] unsafesqlitesync="1" 
     962026-03-12T20:39:20.4835174Z  node0 2026-03-12T20:38:47.208531Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: datadir="/tmp/test_runner_₿_🏃_20260312_203817/interface_ipc_553/node0" 
     972026-03-12T20:39:20.4863027Z  node0 2026-03-12T20:38:47.208669Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: debug="" 
     982026-03-12T20:39:20.4864913Z  node0 2026-03-12T20:38:47.208799Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: debugexclude="libevent" 
     992026-03-12T20:39:20.4911048Z  node0 2026-03-12T20:38:47.208942Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: debugexclude="leveldb" 
    1002026-03-12T20:39:20.4936926Z  node0 2026-03-12T20:38:47.209064Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: debugexclude="rand" 
    1012026-03-12T20:39:20.4972983Z  node0 2026-03-12T20:38:47.209177Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: disablewallet="" 
    1022026-03-12T20:39:20.4974505Z  node0 2026-03-12T20:38:47.209341Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: ipcbind="unix" 
    1032026-03-12T20:39:20.4998841Z  node0 2026-03-12T20:38:47.209476Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: loglevel="trace" 
    1042026-03-12T20:39:20.5015781Z  node0 2026-03-12T20:38:47.209613Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: logratelimit=false 
    1052026-03-12T20:39:20.5083246Z  node0 2026-03-12T20:38:47.209736Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: logsourcelocations="" 
    1062026-03-12T20:39:20.5091651Z  node0 2026-03-12T20:38:47.209855Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: logthreadnames="" 
    1072026-03-12T20:39:20.5093347Z  node0 2026-03-12T20:38:47.242436Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: logtimemicros="" 
    1082026-03-12T20:39:20.5138532Z  node0 2026-03-12T20:38:47.242631Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: uacomment="testnode0" 
    1092026-03-12T20:39:20.5147856Z  node0 2026-03-12T20:38:47.242780Z [init] [common/args.cpp:884] [logArgsPrefix] Command-line arg: v2transport="0" 
    1102026-03-12T20:39:20.5155307Z  node0 2026-03-12T20:38:47.242907Z [init] [init.cpp:1441] [AppInitMain] Using at most 94 automatic connections (65536 file descriptors available) 
    1112026-03-12T20:39:20.5156943Z  node0 2026-03-12T20:38:47.252611Z [scheduler] [util/thread.cpp:20] [TraceThread] scheduler thread start 
    1122026-03-12T20:39:20.5173794Z  node0 2026-03-12T20:38:47.259003Z [init] [init.cpp:1481] [AppInitMain] Log rate limiting disabled 
    1132026-03-12T20:39:20.5223122Z  node0 2026-03-12T20:38:47.259287Z [init] [wallet/init.cpp:106] [Construct] Wallet disabled! 
    1142026-03-12T20:39:20.5247767Z  node0 2026-03-12T20:38:47.301990Z [init] [init.cpp:1509] [AppInitMain] Listening for IPC requests on address unix:/tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/node.sock 
    1152026-03-12T20:39:20.5265593Z  node0 2026-03-12T20:38:48.164957Z [init] [httpserver.cpp:166] [InitHTTPAllowList] [http] Allowing HTTP connections from: 127.0.0.0/8 ::1/128 
    1162026-03-12T20:39:20.5307366Z  node0 2026-03-12T20:38:48.165484Z [init] [httpserver.cpp:342] [HTTPBindAddresses] Binding RPC on address ::1 port 17649 
    1172026-03-12T20:39:20.5314088Z  node0 2026-03-12T20:38:48.165790Z [init] [httpserver.cpp:342] [HTTPBindAddresses] Binding RPC on address 127.0.0.1 port 17649 
    1182026-03-12T20:39:20.5392914Z  node0 2026-03-12T20:38:48.166007Z [init] [httpserver.cpp:418] [InitHTTPServer] [http] Initialized HTTP server 
    1192026-03-12T20:39:20.5394497Z  node0 2026-03-12T20:38:48.166204Z [init] [httpserver.cpp:420] [InitHTTPServer] [http] set work queue of depth 64 
    1202026-03-12T20:39:20.5421591Z  node0 2026-03-12T20:38:48.166342Z [init] [rpc/server.cpp:275] [StartRPC] [rpc] Starting RPC 
    1212026-03-12T20:39:20.5456195Z  node0 2026-03-12T20:38:48.166461Z [init] [httprpc.cpp:333] [StartHTTPRPC] [rpc] Starting HTTP RPC server 
    1222026-03-12T20:39:20.5513239Z  node0 2026-03-12T20:38:48.202553Z [init] [rpc/request.cpp:140] [GenerateAuthCookie] Generated RPC authentication cookie /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/.cookie 
    1232026-03-12T20:39:20.5534171Z  node0 2026-03-12T20:38:48.202710Z [init] [rpc/request.cpp:141] [GenerateAuthCookie] Permissions used for cookie: rw------- 
    1242026-03-12T20:39:20.5561571Z  node0 2026-03-12T20:38:48.202823Z [init] [httprpc.cpp:265] [InitRPCAuthentication] Using random cookie authentication. 
    1252026-03-12T20:39:20.5566609Z  node0 2026-03-12T20:38:48.203240Z [init] [httpserver.cpp:690] [RegisterHTTPHandler] [http] Registering HTTP handler for / (exactmatch 1) 
    1262026-03-12T20:39:20.5621019Z  node0 2026-03-12T20:38:48.203430Z [init] [httpserver.cpp:690] [RegisterHTTPHandler] [http] Registering HTTP handler for /wallet/ (exactmatch 0) 
    1272026-03-12T20:39:20.5623326Z  node0 2026-03-12T20:38:48.203689Z [init] [httpserver.cpp:441] [StartHTTPServer] Starting HTTP server with 2 worker threads 
    1282026-03-12T20:39:20.5679553Z  node0 2026-03-12T20:38:48.204328Z [http_pool_0] [util/thread.cpp:20] [TraceThread] http_pool_0 thread start 
    1292026-03-12T20:39:20.5685359Z  node0 2026-03-12T20:38:48.207572Z [http_pool_0] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_mutex, util/threadpool.h:62 started 
    1302026-03-12T20:39:20.5716396Z  node0 2026-03-12T20:38:48.207971Z [http_pool_1] [util/thread.cpp:20] [TraceThread] http_pool_1 thread start 
    1312026-03-12T20:39:20.5751719Z  node0 2026-03-12T20:38:48.208241Z [http_pool_1] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_mutex, util/threadpool.h:62 started 
    1322026-03-12T20:39:20.5753602Z  node0 2026-03-12T20:38:48.224290Z [init] [init.cpp:1631] [AppInitMain] Using /16 prefix for IP bucketing 
    1332026-03-12T20:39:20.5804582Z  node0 2026-03-12T20:38:48.224455Z [init] [noui.cpp:56] [noui_InitMessage] init message: Loading P2P addresses 
    1342026-03-12T20:39:20.5868994Z  node0 2026-03-12T20:38:48.227356Z [http] [httpserver.cpp:302] [ThreadHTTP] [http] Entering http event loop 
    1352026-03-12T20:39:20.5887891Z  node0 2026-03-12T20:38:48.244695Z [http_pool_0] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_mutex, util/threadpool.h:62 completed (36878μs) 
    1362026-03-12T20:39:20.5890272Z  node0 2026-03-12T20:38:48.261804Z [http_pool_1] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_mutex, util/threadpool.h:62 completed (53326μs) 
    1372026-03-12T20:39:20.5934220Z  node0 2026-03-12T20:38:48.354833Z [init] [addrdb.cpp:211] [LoadAddrman] Creating peers.dat because the file was not found ("/tmp/test_runner_₿_🏃_20260312_203817/interface_ipc_553/node0/regtest/peers.dat") 
    1382026-03-12T20:39:20.5962069Z  node0 2026-03-12T20:38:48.412878Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46646 
    1392026-03-12T20:39:20.5998216Z  node0 2026-03-12T20:38:48.413828Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1402026-03-12T20:39:20.6000200Z  node0 2026-03-12T20:38:48.553495Z [init] [noui.cpp:56] [noui_InitMessage] init message: Loading banlist 
    1412026-03-12T20:39:20.6091908Z  node0 2026-03-12T20:38:48.553711Z [init] [banman.cpp:42] [LoadBanlist] Recreating the banlist database 
    1422026-03-12T20:39:20.6134123Z  node0 2026-03-12T20:38:48.554167Z [init] [banman.cpp:69] [DumpBanlist] [net] Flushed 0 banned node addresses/subnets to disk 0ms 
    1432026-03-12T20:39:20.6191345Z  node0 2026-03-12T20:38:48.557495Z [init] [net.cpp:2437] [SetTryNewOutboundPeer] [net] setting try another outbound peer=false 
    1442026-03-12T20:39:20.6193280Z  node0 2026-03-12T20:38:48.557708Z [init] [net.cpp:3359] [SetNetworkActive] SetNetworkActive: true 
    1452026-03-12T20:39:20.6200380Z  node0 2026-03-12T20:38:48.699755Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46658 
    1462026-03-12T20:39:20.6220656Z  node0 2026-03-12T20:38:48.700787Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1472026-03-12T20:39:20.6287890Z  node0 2026-03-12T20:38:48.942719Z [init] [policy/fees/block_policy_estimator.cpp:564] [CBlockPolicyEstimator] /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/fee_estimates.dat is not found. Continue anyway. 
    1482026-03-12T20:39:20.6290337Z  node0 2026-03-12T20:38:48.943693Z [init] [init.cpp:1833] [AppInitMain] Cache configuration: 
    1492026-03-12T20:39:20.6317688Z  node0 2026-03-12T20:38:48.943807Z [init] [init.cpp:1834] [AppInitMain] * Using 2.0 MiB for block index database 
    1502026-03-12T20:39:20.6374830Z  node0 2026-03-12T20:38:48.943999Z [init] [init.cpp:1845] [AppInitMain] * Using 8.0 MiB for chain state database 
    1512026-03-12T20:39:20.6416990Z  node0 2026-03-12T20:38:48.972424Z [init] [init.cpp:1328] [InitAndLoadChainstate] * Using 1014.0 MiB for in-memory UTXO set (plus up to 286.1 MiB of unused mempool space) 
    1522026-03-12T20:39:20.6418936Z  node0 2026-03-12T20:38:48.973190Z [init] [checkqueue.h:147] [CCheckQueue] Script verification uses 1 additional threads 
    1532026-03-12T20:39:20.6464090Z  node0 2026-03-12T20:38:48.991796Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46670 
    1542026-03-12T20:39:20.6510357Z  node0 2026-03-12T20:38:49.003638Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1552026-03-12T20:39:20.6537991Z  node0 2026-03-12T20:38:49.009955Z [init] [node/blockstorage.cpp:1220] [InitBlocksdirXorKey] Using obfuscation key for blocksdir *.dat files (/tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/blocks): '483dac57094756bf' 
    1562026-03-12T20:39:20.6723452Z  node0 2026-03-12T20:38:49.010192Z [init] [dbwrapper.cpp:237] [CDBWrapper] Opening LevelDB in /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/blocks/index 
    1572026-03-12T20:39:20.6732301Z  node0 2026-03-12T20:38:49.142635Z [init] [dbwrapper.cpp:245] [CDBWrapper] Opened LevelDB successfully 
    1582026-03-12T20:39:20.6743120Z  node0 2026-03-12T20:38:49.142858Z [init] [dbwrapper.cpp:261] [CDBWrapper] Using obfuscation key for /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/blocks/index: 0000000000000000 
    1592026-03-12T20:39:20.6754207Z  node0 2026-03-12T20:38:49.279875Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46672 
    1602026-03-12T20:39:20.6831513Z  node0 2026-03-12T20:38:49.297359Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1612026-03-12T20:39:20.6843761Z  node0 2026-03-12T20:38:49.588444Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46686 
    1622026-03-12T20:39:20.6850700Z  node0 2026-03-12T20:38:49.604822Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1632026-03-12T20:39:20.6904083Z  node0 2026-03-12T20:38:49.889297Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46692 
    1642026-03-12T20:39:20.6949296Z  node0 2026-03-12T20:38:49.905368Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1652026-03-12T20:39:20.6951499Z  node0 2026-03-12T20:38:50.193887Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46700 
    1662026-03-12T20:39:20.6957197Z  node0 2026-03-12T20:38:50.203405Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1672026-03-12T20:39:20.6969920Z  node0 2026-03-12T20:38:50.490687Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46710 
    1682026-03-12T20:39:20.7013330Z  node0 2026-03-12T20:38:50.509042Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1692026-03-12T20:39:20.7015103Z  node0 2026-03-12T20:38:50.800829Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46716 
    1702026-03-12T20:39:20.7045471Z  node0 2026-03-12T20:38:50.809288Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1712026-03-12T20:39:20.7074784Z  node0 2026-03-12T20:38:51.082594Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46728 
    1722026-03-12T20:39:20.7089785Z  node0 2026-03-12T20:38:51.094441Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1732026-03-12T20:39:20.7103082Z  node0 2026-03-12T20:38:51.379841Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46732 
    1742026-03-12T20:39:20.7105138Z  node0 2026-03-12T20:38:51.397835Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1752026-03-12T20:39:20.7134701Z  node0 2026-03-12T20:38:51.683640Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46740 
    1762026-03-12T20:39:20.7177982Z  node0 2026-03-12T20:38:51.703131Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1772026-03-12T20:39:20.7228649Z  node0 2026-03-12T20:38:51.941530Z [init] [script/sigcache.cpp:36] [SignatureCache] Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements 
    1782026-03-12T20:39:20.7230816Z  node0 2026-03-12T20:38:51.972278Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46754 
    1792026-03-12T20:39:20.7257454Z  node0 2026-03-12T20:38:51.974233Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1802026-03-12T20:39:20.7318551Z  node0 2026-03-12T20:38:52.232905Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46760 
    1812026-03-12T20:39:20.7343941Z  node0 2026-03-12T20:38:52.236042Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1822026-03-12T20:39:20.7353939Z  node0 2026-03-12T20:38:52.489762Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46776 
    1832026-03-12T20:39:20.7370063Z  node0 2026-03-12T20:38:52.491783Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1842026-03-12T20:39:20.7381837Z  node0 2026-03-12T20:38:52.769003Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46782 
    1852026-03-12T20:39:20.7419946Z  node0 2026-03-12T20:38:52.785842Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1862026-03-12T20:39:20.7422218Z  node0 2026-03-12T20:38:52.895767Z [init] [validation.cpp:2036] [ValidationCache] Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements 
    1872026-03-12T20:39:20.7563585Z  node0 2026-03-12T20:38:52.896248Z [init] [noui.cpp:56] [noui_InitMessage] init message: Loading block index 
    1882026-03-12T20:39:20.7623711Z  node0 2026-03-12T20:38:52.896454Z [init] [node/chainstate.cpp:157] [LoadChainstate] Validating signatures for all blocks. 
    1892026-03-12T20:39:20.7647003Z  node0 2026-03-12T20:38:52.896589Z [init] [node/chainstate.cpp:159] [LoadChainstate] Setting nMinimumChainWork=0000000000000000000000000000000000000000000000000000000000000000 
    1902026-03-12T20:39:20.7649044Z  node0 2026-03-12T20:38:53.065793Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:46788 
    1912026-03-12T20:39:20.7672521Z  node0 2026-03-12T20:38:53.087402Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    1922026-03-12T20:39:20.7680381Z  node0 2026-03-12T20:38:53.230627Z [init] [node/blockstorage.cpp:539] [LoadBlockIndexDB] Loading block index db: last block file = 0 
    1932026-03-12T20:39:20.7688343Z  node0 2026-03-12T20:38:53.231048Z [init] [node/blockstorage.cpp:543] [LoadBlockIndexDB] Loading block index db: last block file info: CBlockFileInfo(blocks=200, size=52530, heights=0...199, time=2011-02-02...2011-02-02) 
    1942026-03-12T20:39:20.7806566Z  node0 2026-03-12T20:38:53.231247Z [init] [node/blockstorage.cpp:554] [LoadBlockIndexDB] Checking all blk files are present... 
    1952026-03-12T20:39:20.7863394Z  node0 2026-03-12T20:38:53.269503Z [init] [node/chainstate.cpp:87] [CompleteChainstateInitialization] Initializing chainstate Chainstate [ibd] @ height -1 (null) 
    1962026-03-12T20:39:20.7901317Z  node0 2026-03-12T20:38:53.269789Z [init] [dbwrapper.cpp:237] [CDBWrapper] Opening LevelDB in /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/chainstate 
    1972026-03-12T20:39:20.7904582Z  node0 2026-03-12T20:38:53.376892Z [init] [dbwrapper.cpp:245] [CDBWrapper] Opened LevelDB successfully 
    1982026-03-12T20:39:20.7906919Z  node0 2026-03-12T20:38:53.377247Z [init] [dbwrapper.cpp:261] [CDBWrapper] Using obfuscation key for /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/node0/regtest/chainstate: fd83718dc51bd8f5 
    1992026-03-12T20:39:21.0421335Z  node0 2026-03-12T20:38:53.391318Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33508 
    2002026-03-12T20:39:21.0474338Z  node0 2026-03-12T20:38:53.404599Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2012026-03-12T20:39:21.0478966Z  node0 2026-03-12T20:38:53.408772Z [init] [validation.cpp:4580] [LoadChainTip] Loaded best chain: hashBestChain=30068a561f1d748696d6fe1368b2b9b9f765095cda5b767b291e8bf84caff9f1 height=199 date=2011-02-02T23:17:17Z progress=0.000419 
    2022026-03-12T20:39:21.0481595Z  node0 2026-03-12T20:38:53.410783Z [init] [noui.cpp:56] [noui_InitMessage] init message: Verifying blocks 
    2032026-03-12T20:39:21.0485379Z  node0 2026-03-12T20:38:53.411067Z [init] [validation.cpp:4624] [VerifyDB] Verifying last 6 blocks at level 3 
    2042026-03-12T20:39:21.0518703Z  node0 2026-03-12T20:38:53.441712Z [init] [validation.cpp:4633] [VerifyDB] Verification progress: 0% 
    2052026-03-12T20:39:21.0567377Z  node0 2026-03-12T20:38:53.638759Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 16% 
    2062026-03-12T20:39:21.0569070Z  node0 2026-03-12T20:38:53.690697Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33510 
    2072026-03-12T20:39:21.0604846Z  node0 2026-03-12T20:38:53.691596Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2082026-03-12T20:39:21.0643836Z  node0 2026-03-12T20:38:53.853215Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 33% 
    2092026-03-12T20:39:21.0650675Z  node0 2026-03-12T20:38:53.985909Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33520 
    2102026-03-12T20:39:21.0683019Z  node0 2026-03-12T20:38:54.003842Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2112026-03-12T20:39:21.0684426Z  node0 2026-03-12T20:38:54.185997Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 50% 
    2122026-03-12T20:39:21.0693137Z  node0 2026-03-12T20:38:54.314990Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33534 
    2132026-03-12T20:39:21.0733321Z  node0 2026-03-12T20:38:54.329053Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2142026-03-12T20:39:21.0752952Z  node0 2026-03-12T20:38:54.476846Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 66% 
    2152026-03-12T20:39:21.0763362Z  node0 2026-03-12T20:38:54.608973Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33550 
    2162026-03-12T20:39:21.0765191Z  node0 2026-03-12T20:38:54.627690Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2172026-03-12T20:39:21.0806779Z  node0 2026-03-12T20:38:54.708865Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 83% 
    2182026-03-12T20:39:21.0820024Z  node0 2026-03-12T20:38:54.912789Z [init] [validation.cpp:4641] [VerifyDB] Verification progress: 99% 
    2192026-03-12T20:39:21.0825843Z  node0 2026-03-12T20:38:54.912977Z [init] [validation.cpp:4735] [VerifyDB] Verification: No coin database inconsistencies in last 6 blocks (6 transactions) 
    2202026-03-12T20:39:21.0827712Z  node0 2026-03-12T20:38:54.925693Z [init] [init.cpp:1414] [InitAndLoadChainstate] Block index and chainstate loaded 
    2212026-03-12T20:39:21.0858356Z  node0 2026-03-12T20:38:54.934483Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33562 
    2222026-03-12T20:39:21.0879473Z  node0 2026-03-12T20:38:54.938438Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2232026-03-12T20:39:21.0886428Z  node0 2026-03-12T20:38:54.963282Z [init] [init.cpp:1949] [AppInitMain] Setting NODE_NETWORK in non-prune mode 
    2242026-03-12T20:39:21.0891770Z  node0 2026-03-12T20:38:54.964113Z [initload] [util/thread.cpp:20] [TraceThread] initload thread start 
    2252026-03-12T20:39:21.0897908Z  node0 2026-03-12T20:38:54.968225Z [initload] [node/mempool_persist.cpp:49] [LoadMempool] Failed to open mempool file. Continuing anyway. 
    2262026-03-12T20:39:21.0909377Z  node0 2026-03-12T20:38:54.994533Z [initload] [util/thread.cpp:22] [TraceThread] initload thread exit 
    2272026-03-12T20:39:21.0940466Z  node0 2026-03-12T20:38:54.994950Z [init] [init.cpp:2080] [AppInitMain] block tree size = 200 
    2282026-03-12T20:39:21.0969303Z  node0 2026-03-12T20:38:54.995118Z [init] [init.cpp:2093] [AppInitMain] nBestHeight = 199 
    2292026-03-12T20:39:21.0988664Z  node0 2026-03-12T20:38:54.996666Z [init] [net.cpp:3332] [BindListenPort] Bound to 127.0.0.1:12649 
    2302026-03-12T20:39:21.0996340Z  node0 2026-03-12T20:38:54.996918Z [init] [noui.cpp:56] [noui_InitMessage] init message: Starting network threads 
    2312026-03-12T20:39:21.1082839Z  node0 2026-03-12T20:38:55.090493Z [net] [util/thread.cpp:20] [TraceThread] net thread start 
    2322026-03-12T20:39:21.1163453Z  node0 2026-03-12T20:38:55.090963Z [init] [net.cpp:3528] [Start] DNS seeding disabled 
    2332026-03-12T20:39:21.1165021Z  node0 2026-03-12T20:38:55.093778Z [addcon] [util/thread.cpp:20] [TraceThread] addcon thread start 
    2342026-03-12T20:39:21.1229525Z  node0 2026-03-12T20:38:55.100119Z [init] [noui.cpp:56] [noui_InitMessage] init message: Done loading 
    2352026-03-12T20:39:21.1241005Z  node0 2026-03-12T20:38:55.100906Z [msghand] [util/thread.cpp:20] [TraceThread] msghand thread start 
    2362026-03-12T20:39:21.1248333Z  node0 2026-03-12T20:38:55.214241Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2372026-03-12T20:39:21.1250134Z  node0 2026-03-12T20:38:55.231802Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockcount user=__cookie__ 
    2382026-03-12T20:39:21.1388367Z  node0 2026-03-12T20:38:55.257788Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2392026-03-12T20:39:21.1401882Z  node0 2026-03-12T20:38:55.266705Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getmempoolinfo user=__cookie__ 
    2402026-03-12T20:39:21.1412864Z  test  2026-03-12T20:38:55.291623Z TestFramework.node0 (DEBUG): RPC successfully started 
    2412026-03-12T20:39:21.1414805Z  node0 2026-03-12T20:38:55.292399Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2422026-03-12T20:39:21.1463489Z  node0 2026-03-12T20:38:55.314725Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockchaininfo user=__cookie__ 
    2432026-03-12T20:39:21.1493673Z  test  2026-03-12T20:38:55.327731Z TestFramework (DEBUG): Generate a block with current time 
    2442026-03-12T20:39:21.1543197Z  test  2026-03-12T20:38:55.327894Z TestFramework.node0 (DEBUG): TestNode.generate() dispatches `generate` call to `generatetoaddress` 
    2452026-03-12T20:39:21.1552168Z  node0 2026-03-12T20:38:55.339610Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2462026-03-12T20:39:21.1554096Z  node0 2026-03-12T20:38:55.347881Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=generatetoaddress user=__cookie__ 
    2472026-03-12T20:39:21.1561100Z  node0 2026-03-12T20:38:55.350032Z [http_pool_0] [node/miner.cpp:215] [CreateNewBlock] CreateNewBlock(): block weight: 904 txs: 0 fees: 0 sigops 400 
    2482026-03-12T20:39:21.1577020Z  node0 2026-03-12T20:38:55.384623Z [http_pool_0] [validation.cpp:2387] [ConnectBlock] [bench]     - Sanity checks: 0.10ms [0.00s (0.10ms/blk)] 
    2492026-03-12T20:39:21.1624482Z  node0 2026-03-12T20:38:55.385089Z [http_pool_0] [validation.cpp:2489] [ConnectBlock] [bench]     - Fork checks: 0.51ms [0.00s (0.51ms/blk)] 
    2502026-03-12T20:39:21.1627641Z  node0 2026-03-12T20:38:55.385277Z [http_pool_0] [validation.cpp:2496] [ConnectBlock] Enabling script verification at block [#200](/bitcoin-core-multiprocess/200/) (30834aeeab709f1c6be9b9b30450740e09116b86c7500b0c40d203a96417bcce): assumevalid=0 (always verify). 
    2512026-03-12T20:39:21.1742402Z  node0 2026-03-12T20:38:55.385569Z [http_pool_0] [validation.cpp:2605] [ConnectBlock] [bench]       - Connect 1 transactions: 0.46ms (0.462ms/tx, 0.000ms/txin) [0.00s (0.46ms/blk)] 
    2522026-03-12T20:39:21.1773902Z  node0 2026-03-12T20:38:55.385860Z [http_pool_0] [validation.cpp:2628] [ConnectBlock] [bench]     - Verify 0 txins: 0.76ms (0.000ms/txin) [0.00s (0.76ms/blk)] 
    2532026-03-12T20:39:21.1787331Z  node0 2026-03-12T20:38:55.420565Z [http_pool_0] [node/miner.cpp:234] [CreateNewBlock] [bench] CreateNewBlock() chunks: 0.24ms, validity: 70.93ms (total 71.18ms) 
    2542026-03-12T20:39:21.1789085Z  node0 2026-03-12T20:38:55.538059Z [http_pool_0] [validation.cpp:3021] [ConnectTip] [bench]   - Using cached block 
    2552026-03-12T20:39:21.1797591Z  node0 2026-03-12T20:38:55.538200Z [http_pool_0] [validation.cpp:3029] [ConnectTip] [bench]   - Load block from disk: 0.14ms 
    2562026-03-12T20:39:21.1804252Z  node0 2026-03-12T20:38:55.538408Z [http_pool_0] [validation.cpp:2387] [ConnectBlock] [bench]     - Sanity checks: 0.01ms [0.00s (0.06ms/blk)] 
    2572026-03-12T20:39:21.1937360Z  node0 2026-03-12T20:38:55.538769Z [http_pool_0] [validation.cpp:2489] [ConnectBlock] [bench]     - Fork checks: 0.37ms [0.00s (0.44ms/blk)] 
    2582026-03-12T20:39:21.1940265Z  node0 2026-03-12T20:38:55.539044Z [http_pool_0] [validation.cpp:2605] [ConnectBlock] [bench]       - Connect 1 transactions: 0.25ms (0.254ms/tx, 0.000ms/txin) [0.00s (0.36ms/blk)] 
    2592026-03-12T20:39:21.1998350Z  node0 2026-03-12T20:38:55.539289Z [http_pool_0] [validation.cpp:2628] [ConnectBlock] [bench]     - Verify 0 txins: 0.49ms (0.000ms/txin) [0.00s (0.62ms/blk)] 
    2602026-03-12T20:39:21.2006790Z  node0 2026-03-12T20:38:55.652619Z [http_pool_0] [validation.cpp:2643] [ConnectBlock] [bench]     - Write undo data: 113.33ms [0.11s (56.67ms/blk)] 
    2612026-03-12T20:39:21.2053284Z  node0 2026-03-12T20:38:55.652769Z [http_pool_0] [validation.cpp:2658] [ConnectBlock] [bench]     - Index writing: 0.19ms [0.00s (0.09ms/blk)] 
    2622026-03-12T20:39:21.2059309Z  node0 2026-03-12T20:38:55.652935Z [http_pool_0] [validationinterface.cpp:256] [BlockChecked] [validation] BlockChecked: block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 state=Valid 
    2632026-03-12T20:39:21.2061975Z  node0 2026-03-12T20:38:55.653246Z [http_pool_0] [validation.cpp:3049] [ConnectTip] [bench]   - Connect total: 115.04ms [0.12s (57.52ms/blk)] 
    2642026-03-12T20:39:21.2124035Z  node0 2026-03-12T20:38:55.653437Z [http_pool_0] [validation.cpp:3057] [ConnectTip] [bench]   - Flush: 0.19ms [0.00s (0.10ms/blk)] 
    2652026-03-12T20:39:21.2131335Z  node0 2026-03-12T20:38:55.653689Z [http_pool_0] [validation.cpp:3067] [ConnectTip] [bench]   - Writing chainstate: 0.25ms [0.00s (0.13ms/blk)] 
    2662026-03-12T20:39:21.2216380Z  node0 2026-03-12T20:38:55.653825Z [http_pool_0] [validationinterface.cpp:231] [MempoolTransactionsRemovedForBlock] [validation] Enqueuing MempoolTransactionsRemovedForBlock: block height=200 txs removed=0 
    2672026-03-12T20:39:21.2219878Z  node0 2026-03-12T20:38:55.654225Z [http_pool_0] [validation.cpp:3285] [UpdateIBDStatus] Leaving InitialBlockDownload (latching to false) 
    2682026-03-12T20:39:21.2286570Z  node0 2026-03-12T20:38:55.718071Z [http_pool_0] [validation.cpp:2875] [UpdateTipLog] UpdateTip: new best=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 height=200 version=0x30000000 log2_work=8.651052 tx=201 date='2026-03-12T20:38:55Z' progress=1.000000 cache=0.3MiB(1txo) 
    2692026-03-12T20:39:21.2335029Z  node0 2026-03-12T20:38:55.718251Z [http_pool_0] [validation.cpp:3084] [ConnectTip] [bench]   - Connect postprocess: 64.55ms [0.06s (32.28ms/blk)] 
    2702026-03-12T20:39:21.2363795Z  node0 2026-03-12T20:38:55.718397Z [http_pool_0] [validation.cpp:3088] [ConnectTip] [bench] - Connect block: 180.17ms [0.18s (90.09ms/blk)] 
    2712026-03-12T20:39:21.2378236Z  node0 2026-03-12T20:38:55.718684Z [scheduler] [validationinterface.cpp:231] [operator()] [validation] MempoolTransactionsRemovedForBlock: block height=200 txs removed=0 
    2722026-03-12T20:39:21.2380356Z  node0 2026-03-12T20:38:55.721293Z [http_pool_0] [txmempool.cpp:441] [check] [mempool] Checking mempool with 0 transactions and 0 inputs 
    2732026-03-12T20:39:21.2385472Z  node0 2026-03-12T20:38:55.722907Z [http_pool_0] [validationinterface.cpp:221] [BlockConnected] [validation] Enqueuing BlockConnected: block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 block height=200 
    2742026-03-12T20:39:21.2438720Z  node0 2026-03-12T20:38:55.723161Z [http_pool_0] [validationinterface.cpp:185] [UpdatedBlockTip] [validation] Enqueuing UpdatedBlockTip: new block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 fork block hash=30068a561f1d748696d6fe1368b2b9b9f765095cda5b767b291e8bf84caff9f1 (in IBD=false) 
    2752026-03-12T20:39:21.2442813Z  node0 2026-03-12T20:38:55.753627Z [scheduler] [policy/fees/block_policy_estimator.cpp:712] [processBlock] [estimatefee] Blockpolicy estimates updated by 0 of 0 block txs, since last block 0 of 0 tracked, mempool map size 0, max target 0 from current 
    2762026-03-12T20:39:21.2445159Z  node0 2026-03-12T20:38:55.762859Z [http_pool_0] [validationinterface.cpp:190] [ActiveTipChange] [validation] ActiveTipChange: new block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 block height=200 
    2772026-03-12T20:39:21.2447296Z  node0 2026-03-12T20:38:55.768647Z [scheduler] [validationinterface.cpp:221] [operator()] [validation] BlockConnected: block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 block height=200 
    2782026-03-12T20:39:21.2449024Z  node0 2026-03-12T20:38:55.768886Z [scheduler] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_tx_download_mutex, net_processing.cpp:2085 started 
    2792026-03-12T20:39:21.2450877Z  node0 2026-03-12T20:38:55.950788Z [scheduler] [logging/timer.h:58] [Log] [lock] Enter: lock contention m_tx_download_mutex, net_processing.cpp:2085 completed (181751μs) 
    2802026-03-12T20:39:21.2452255Z  node0 2026-03-12T20:38:55.990458Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2812026-03-12T20:39:21.2453652Z  node0 2026-03-12T20:38:55.991221Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblock user=__cookie__ 
    2822026-03-12T20:39:21.2454837Z  node0 2026-03-12T20:38:56.047698Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2832026-03-12T20:39:21.2456403Z  node0 2026-03-12T20:38:56.048492Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=submitblock user=__cookie__ 
    2842026-03-12T20:39:21.2457652Z  node0 2026-03-12T20:38:56.095758Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2852026-03-12T20:39:21.2458931Z  node0 2026-03-12T20:38:56.111089Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getblockchaininfo user=__cookie__ 
    2862026-03-12T20:39:21.2461202Z  node0 2026-03-12T20:38:56.130743Z [scheduler] [validationinterface.cpp:185] [operator()] [validation] UpdatedBlockTip: new block hash=068c09fbdac88e084ac4c8c5e876a5532b7c2ee1d72f967384a77ef5ef7c1a72 fork block hash=30068a561f1d748696d6fe1368b2b9b9f765095cda5b767b291e8bf84caff9f1 (in IBD=false) 
    2872026-03-12T20:39:21.2724900Z  node0 2026-03-12T20:38:56.418099Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2882026-03-12T20:39:21.2727611Z  node0 2026-03-12T20:38:56.438015Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getbestblockhash user=__cookie__ 
    2892026-03-12T20:39:21.2737737Z  node0 2026-03-12T20:38:56.467872Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2902026-03-12T20:39:21.2739632Z  node0 2026-03-12T20:38:56.491174Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getrawmempool user=__cookie__ 
    2912026-03-12T20:39:21.2741467Z  node0 2026-03-12T20:38:56.545686Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    2922026-03-12T20:39:21.2743333Z  node0 2026-03-12T20:38:56.570679Z [http_pool_0] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=syncwithvalidationinterfacequeue user=__cookie__ 
    2932026-03-12T20:39:21.2744661Z  test  2026-03-12T20:38:56.595317Z TestFramework (INFO): Running echo test 
    2942026-03-12T20:39:21.2745514Z  test  2026-03-12T20:38:56.634479Z TestFramework (DEBUG): Create Echo proxy object 
    2952026-03-12T20:39:21.2746442Z  test  2026-03-12T20:38:56.634756Z TestFramework (DEBUG): Test a few invocations of echo 
    2962026-03-12T20:39:21.2747882Z  node0 2026-03-12T20:38:56.682296Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#1](/bitcoin-core-multiprocess/1/) Init.construct$Params 
    2972026-03-12T20:39:21.2749726Z  node0 2026-03-12T20:38:56.682636Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: () 
    2982026-03-12T20:39:21.2751566Z  node0 2026-03-12T20:38:56.683055Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#1](/bitcoin-core-multiprocess/1/) Init.construct$Results 
    2992026-03-12T20:39:21.2753780Z  node0 2026-03-12T20:38:56.734820Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (threadMap = <external capability>) 
    3002026-03-12T20:39:21.2755752Z  node0 2026-03-12T20:38:56.781141Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#2](/bitcoin-core-multiprocess/2/) Init.makeEcho$Params 
    3012026-03-12T20:39:21.2757846Z  node0 2026-03-12T20:38:56.781865Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3022026-03-12T20:39:21.2760210Z  node0 2026-03-12T20:38:56.864823Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#2](/bitcoin-core-multiprocess/2/) {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} 
    3032026-03-12T20:39:21.2762265Z  node0 2026-03-12T20:38:56.917631Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} IPC server executing request [#2](/bitcoin-core-multiprocess/2/) 
    3042026-03-12T20:39:21.2936489Z  node0 2026-03-12T20:38:56.985152Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#2](/bitcoin-core-multiprocess/2/) Init.makeEcho$Results 
    3052026-03-12T20:39:21.2939768Z  node0 2026-03-12T20:38:56.985622Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = <external capability>) 
    3062026-03-12T20:39:21.2941882Z  node0 2026-03-12T20:38:56.997846Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#3](/bitcoin-core-multiprocess/3/) Echo.echo$Params 
    3072026-03-12T20:39:21.2944176Z  node0 2026-03-12T20:38:56.998562Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>), echo = "hallo") 
    3082026-03-12T20:39:21.2946533Z  node0 2026-03-12T20:38:56.999070Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#3](/bitcoin-core-multiprocess/3/) {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} 
    3092026-03-12T20:39:21.2948707Z  node0 2026-03-12T20:38:57.057752Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} IPC server executing request [#3](/bitcoin-core-multiprocess/3/) 
    3102026-03-12T20:39:21.2950763Z  node0 2026-03-12T20:38:57.068223Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#3](/bitcoin-core-multiprocess/3/) Echo.echo$Results 
    3112026-03-12T20:39:21.3034598Z  node0 2026-03-12T20:38:57.068651Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = "hallo") 
    3122026-03-12T20:39:21.3036919Z  node0 2026-03-12T20:38:57.090081Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#4](/bitcoin-core-multiprocess/4/) Echo.echo$Params 
    3132026-03-12T20:39:21.3038932Z  node0 2026-03-12T20:38:57.142943Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>), echo = "") 
    3142026-03-12T20:39:21.3041152Z  node0 2026-03-12T20:38:57.143463Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#4](/bitcoin-core-multiprocess/4/) {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} 
    3152026-03-12T20:39:21.3141026Z  node0 2026-03-12T20:38:57.185576Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} IPC server executing request [#4](/bitcoin-core-multiprocess/4/) 
    3162026-03-12T20:39:21.3143727Z  node0 2026-03-12T20:38:57.199587Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#4](/bitcoin-core-multiprocess/4/) Echo.echo$Results 
    3172026-03-12T20:39:21.3146838Z  node0 2026-03-12T20:38:57.199974Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = "") 
    3182026-03-12T20:39:21.3164306Z  node0 2026-03-12T20:38:57.245498Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#5](/bitcoin-core-multiprocess/5/) Echo.echo$Params 
    3192026-03-12T20:39:21.3166343Z  node0 2026-03-12T20:38:57.245938Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>), echo = "haha") 
    3202026-03-12T20:39:21.3168551Z  node0 2026-03-12T20:38:57.246232Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#5](/bitcoin-core-multiprocess/5/) {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} 
    3212026-03-12T20:39:21.3170609Z  node0 2026-03-12T20:38:57.267816Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9955 (from pythread)} IPC server executing request [#5](/bitcoin-core-multiprocess/5/) 
    3222026-03-12T20:39:21.3253108Z  node0 2026-03-12T20:38:57.315991Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#5](/bitcoin-core-multiprocess/5/) Echo.echo$Results 
    3232026-03-12T20:39:21.3371700Z  node0 2026-03-12T20:38:57.316275Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = "haha") 
    3242026-03-12T20:39:21.3385248Z  test  2026-03-12T20:38:57.336881Z TestFramework (DEBUG): Destroy the Echo object 
    3252026-03-12T20:39:21.3386547Z  test  2026-03-12T20:38:57.337552Z TestFramework (INFO): Running mining test 
    3262026-03-12T20:39:21.3417494Z  test  2026-03-12T20:38:57.338196Z TestFramework (DEBUG): Create Mining proxy object 
    3272026-03-12T20:39:21.3556131Z  test  2026-03-12T20:38:57.338402Z TestFramework (DEBUG): Test simple inspectors 
    3282026-03-12T20:39:21.3580608Z  node0 2026-03-12T20:38:57.374039Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4EchoEEE 
    3292026-03-12T20:39:21.3583490Z  node0 2026-03-12T20:38:57.467277Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#6](/bitcoin-core-multiprocess/6/) Init.construct$Params 
    3302026-03-12T20:39:21.3659590Z  node0 2026-03-12T20:38:57.467530Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: () 
    3312026-03-12T20:39:21.3669098Z  node0 2026-03-12T20:38:57.490415Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#6](/bitcoin-core-multiprocess/6/) Init.construct$Results 
    3322026-03-12T20:39:21.3703550Z  node0 2026-03-12T20:38:57.490775Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (threadMap = <external capability>) 
    3332026-03-12T20:39:21.3706542Z  node0 2026-03-12T20:38:57.548721Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#7](/bitcoin-core-multiprocess/7/) Init.makeMining$Params 
    3342026-03-12T20:39:21.3734426Z  node0 2026-03-12T20:38:57.549278Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3352026-03-12T20:39:21.3764197Z  node0 2026-03-12T20:38:57.549578Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#7](/bitcoin-core-multiprocess/7/) {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} 
    3362026-03-12T20:39:21.3793469Z  node0 2026-03-12T20:38:57.617766Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected. 
    3372026-03-12T20:39:21.3796057Z  node0 2026-03-12T20:38:57.617999Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE 
    3382026-03-12T20:39:21.3840897Z  node0 2026-03-12T20:38:57.683946Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} IPC server executing request [#7](/bitcoin-core-multiprocess/7/) 
    3392026-03-12T20:39:21.3871365Z  node0 2026-03-12T20:38:57.729655Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#7](/bitcoin-core-multiprocess/7/) Init.makeMining$Results 
    3402026-03-12T20:39:21.3894245Z  node0 2026-03-12T20:38:57.730397Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = <external capability>) 
    3412026-03-12T20:39:21.3918481Z  node0 2026-03-12T20:38:57.730869Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#8](/bitcoin-core-multiprocess/8/) Mining.isTestChain$Params 
    3422026-03-12T20:39:21.3921007Z  node0 2026-03-12T20:38:57.731196Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3432026-03-12T20:39:21.4023734Z  node0 2026-03-12T20:38:57.731565Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#8](/bitcoin-core-multiprocess/8/) {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} 
    3442026-03-12T20:39:21.4063332Z  node0 2026-03-12T20:38:57.782473Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} IPC server executing request [#8](/bitcoin-core-multiprocess/8/) 
    3452026-03-12T20:39:21.4120845Z  node0 2026-03-12T20:38:57.831554Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#8](/bitcoin-core-multiprocess/8/) Mining.isTestChain$Results 
    3462026-03-12T20:39:21.4123553Z  node0 2026-03-12T20:38:57.831938Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = true) 
    3472026-03-12T20:39:21.4149636Z  node0 2026-03-12T20:38:57.847963Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#9](/bitcoin-core-multiprocess/9/) Mining.isInitialBlockDownload$Params 
    3482026-03-12T20:39:21.4210028Z  node0 2026-03-12T20:38:57.899514Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3492026-03-12T20:39:21.4249291Z  node0 2026-03-12T20:38:57.899981Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#9](/bitcoin-core-multiprocess/9/) {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} 
    3502026-03-12T20:39:21.4251608Z  node0 2026-03-12T20:38:57.906482Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} IPC server executing request [#9](/bitcoin-core-multiprocess/9/) 
    3512026-03-12T20:39:21.4315867Z  node0 2026-03-12T20:38:57.908367Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#9](/bitcoin-core-multiprocess/9/) Mining.isInitialBlockDownload$Results 
    3522026-03-12T20:39:21.4364066Z  node0 2026-03-12T20:38:57.908706Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = false) 
    3532026-03-12T20:39:21.4428115Z  node0 2026-03-12T20:38:57.914643Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#10](/bitcoin-core-multiprocess/10/) Mining.getTip$Params 
    3542026-03-12T20:39:21.4470384Z  node0 2026-03-12T20:38:57.915167Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3552026-03-12T20:39:21.4473584Z  node0 2026-03-12T20:38:57.915641Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#10](/bitcoin-core-multiprocess/10/) {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} 
    3562026-03-12T20:39:21.4491100Z  node0 2026-03-12T20:38:57.918468Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9971 (from pythread)} IPC server executing request [#10](/bitcoin-core-multiprocess/10/) 
    3572026-03-12T20:39:21.4519923Z  node0 2026-03-12T20:38:57.919643Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#10](/bitcoin-core-multiprocess/10/) Mining.getTip$Results 
    3582026-03-12T20:39:21.4593560Z  node0 2026-03-12T20:38:57.920217Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = (hash = "r\\032|\\357\\365~\\247\\204s\\226/\\327\\341.|+S\\245v\\350\\305\\310\\304J\\b\\216\\310\\332\\373\\t\\214\\006", height = 200), hasResult = true) 
    3592026-03-12T20:39:21.4596400Z  node0 2026-03-12T20:38:57.947621Z [http] [httpserver.cpp:233] [http_request_cb] [http] Received a POST request for / from 127.0.0.1:33572 
    3602026-03-12T20:39:21.4704406Z  node0 2026-03-12T20:38:57.948383Z [http_pool_1] [rpc/request.cpp:243] [parse] [rpc] ThreadRPCServer method=getchaintips user=__cookie__ 
    3612026-03-12T20:39:21.4723853Z  test  2026-03-12T20:38:57.987523Z TestFramework (INFO): Running deprecated mining interface test 
    3622026-03-12T20:39:21.4735843Z  test  2026-03-12T20:38:57.988011Z TestFramework (DEBUG): Calling deprecated makeMiningOld2 should raise an error 
    3632026-03-12T20:39:21.4738475Z  node0 2026-03-12T20:38:57.996922Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE 
    3642026-03-12T20:39:21.4765305Z  node0 2026-03-12T20:38:57.998134Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected. 
    3652026-03-12T20:39:21.4785294Z  node0 2026-03-12T20:38:58.009655Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE 
    3662026-03-12T20:39:21.4878238Z  node0 2026-03-12T20:38:58.028543Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#11](/bitcoin-core-multiprocess/11/) Init.makeMiningOld2$Params 
    3672026-03-12T20:39:21.4920510Z  node0 2026-03-12T20:38:58.028732Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: () 
    3682026-03-12T20:39:21.4923213Z  node0 2026-03-12T20:38:58.034342Z [capnp-loop] [ipc/capnp/protocol.cpp:59] [IpcLogFn] [error] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server unhandled exception: Old mining interface (@2) not supported. Please update your client! 
    3692026-03-12T20:39:21.4994217Z  test  2026-03-12T20:38:58.049581Z TestFramework (INFO): Running disconnect during BlockTemplate.waitNext 
    3702026-03-12T20:39:21.5023406Z  test  2026-03-12T20:38:58.050442Z TestFramework (DEBUG): Create Mining proxy object 
    3712026-03-12T20:39:21.5028491Z  test  2026-03-12T20:38:58.050607Z TestFramework (DEBUG): Create a template 
    3722026-03-12T20:39:21.5030473Z  node0 2026-03-12T20:38:58.061777Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#12](/bitcoin-core-multiprocess/12/) Init.construct$Params 
    3732026-03-12T20:39:21.5035872Z  node0 2026-03-12T20:38:58.062073Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: () 
    3742026-03-12T20:39:21.5041910Z  node0 2026-03-12T20:38:58.104514Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#12](/bitcoin-core-multiprocess/12/) Init.construct$Results 
    3752026-03-12T20:39:21.5080342Z  node0 2026-03-12T20:38:58.104946Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (threadMap = <external capability>) 
    3762026-03-12T20:39:21.5083026Z  node0 2026-03-12T20:38:58.144914Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#13](/bitcoin-core-multiprocess/13/) Init.makeMining$Params 
    3772026-03-12T20:39:21.5147590Z  node0 2026-03-12T20:38:58.145454Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>)) 
    3782026-03-12T20:39:21.5254626Z  node0 2026-03-12T20:38:58.145854Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#13](/bitcoin-core-multiprocess/13/) {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} 
    3792026-03-12T20:39:21.5283058Z  node0 2026-03-12T20:38:58.196836Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected. 
    3802026-03-12T20:39:21.5285636Z  node0 2026-03-12T20:38:58.197130Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE 
    3812026-03-12T20:39:21.5318533Z  node0 2026-03-12T20:38:58.237087Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} IPC server executing request [#13](/bitcoin-core-multiprocess/13/) 
    3822026-03-12T20:39:21.5338940Z  node0 2026-03-12T20:38:58.279699Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#13](/bitcoin-core-multiprocess/13/) Init.makeMining$Results 
    3832026-03-12T20:39:21.5376755Z  node0 2026-03-12T20:38:58.280024Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = <external capability>) 
    3842026-03-12T20:39:21.5412912Z  node0 2026-03-12T20:38:58.280602Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#14](/bitcoin-core-multiprocess/14/) Mining.createNewBlock$Params 
    3852026-03-12T20:39:21.5416763Z  node0 2026-03-12T20:38:58.281483Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>), options = (useMempool = true, blockReservedWeight = 8000, coinbaseOutputMaxAdditionalSigops = 400), cooldown = true) 
    3862026-03-12T20:39:21.5472866Z  node0 2026-03-12T20:38:58.281860Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#14](/bitcoin-core-multiprocess/14/) {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} 
    3872026-03-12T20:39:21.5485259Z  node0 2026-03-12T20:38:58.330708Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} IPC server executing request [#14](/bitcoin-core-multiprocess/14/) 
    3882026-03-12T20:39:21.5498918Z  node0 2026-03-12T20:38:58.346766Z [unknown] [node/miner.cpp:215] [CreateNewBlock] CreateNewBlock(): block weight: 804 txs: 0 fees: 0 sigops 400 
    3892026-03-12T20:39:21.5500734Z  node0 2026-03-12T20:38:58.347476Z [unknown] [validation.cpp:2387] [ConnectBlock] [bench]     - Sanity checks: 0.08ms [0.00s (0.06ms/blk)] 
    3902026-03-12T20:39:21.5567342Z  node0 2026-03-12T20:38:58.347893Z [unknown] [validation.cpp:2489] [ConnectBlock] [bench]     - Fork checks: 0.45ms [0.00s (0.44ms/blk)] 
    3912026-03-12T20:39:21.5581658Z  node0 2026-03-12T20:38:58.348142Z [unknown] [validation.cpp:2605] [ConnectBlock] [bench]       - Connect 1 transactions: 0.23ms (0.229ms/tx, 0.000ms/txin) [0.00s (0.32ms/blk)] 
    3922026-03-12T20:39:21.5615299Z  node0 2026-03-12T20:38:58.409959Z [unknown] [validation.cpp:2628] [ConnectBlock] [bench]     - Verify 0 txins: 61.99ms (0.000ms/txin) [0.06s (21.08ms/blk)] 
    3932026-03-12T20:39:21.5639772Z  node0 2026-03-12T20:38:58.411482Z [unknown] [node/miner.cpp:234] [CreateNewBlock] [bench] CreateNewBlock() chunks: 0.22ms, validity: 64.99ms (total 65.21ms) 
    3942026-03-12T20:39:21.5705218Z  node0 2026-03-12T20:38:58.452079Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server send response [#14](/bitcoin-core-multiprocess/14/) Mining.createNewBlock$Results 
    3952026-03-12T20:39:21.5713755Z  node0 2026-03-12T20:38:58.452604Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} response data: (result = <external capability>) 
    3962026-03-12T20:39:21.5715505Z  test  2026-03-12T20:38:58.454011Z TestFramework (DEBUG): Wait for a new template 
    3972026-03-12T20:39:21.5764920Z  node0 2026-03-12T20:38:58.482108Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server recv request  [#15](/bitcoin-core-multiprocess/15/) BlockTemplate.waitNext$Params 
    3982026-03-12T20:39:21.5767404Z  node0 2026-03-12T20:38:58.523542Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-9523/b-capnp-loop-9612} request data: (context = (thread = <external capability>), options = (timeout = 600000, feeThreshold = 1)) 
    3992026-03-12T20:39:21.5770161Z  node0 2026-03-12T20:38:58.523944Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9612} IPC server post request  [#15](/bitcoin-core-multiprocess/15/) {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} 
    4002026-03-12T20:39:21.5772746Z  node0 2026-03-12T20:38:58.573383Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE 
    4012026-03-12T20:39:21.5774737Z  node0 2026-03-12T20:38:58.574563Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected. 
    4022026-03-12T20:39:21.5776946Z  node0 2026-03-12T20:38:58.574851Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE 
    4032026-03-12T20:39:21.5779422Z  node0 2026-03-12T20:38:58.575439Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} IPC server executing request [#15](/bitcoin-core-multiprocess/15/) 
    4042026-03-12T20:39:21.5781394Z  test  2026-03-12T20:39:18.610585Z TestFramework (ERROR): Unexpected exception: 
    4052026-03-12T20:39:21.5782213Z                                    Traceback (most recent call last):
    4062026-03-12T20:39:21.5783570Z                                      File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_framework.py", line 142, in main
    4072026-03-12T20:39:21.5784660Z                                        self.run_test()
    4082026-03-12T20:39:21.5785682Z                                      File "/home/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc.py", line 176, in run_test
    4092026-03-12T20:39:21.5786796Z                                        self.run_unclean_disconnect_test()
    4102026-03-12T20:39:21.5787919Z                                      File "/home/runner/work/libmultiprocess/libmultiprocess/build/test/functional/interface_ipc.py", line 122, in run_unclean_disconnect_test
    4112026-03-12T20:39:21.5789067Z                                        disconnected_log_check.close()
    4122026-03-12T20:39:21.5789776Z                                      File "/usr/lib/python3.12/contextlib.py", line 618, in close
    4132026-03-12T20:39:21.5790535Z                                        self.__exit__(None, None, None)
    4142026-03-12T20:39:21.5791150Z                                      File "/usr/lib/python3.12/contextlib.py", line 610, in __exit__
    4152026-03-12T20:39:21.5792052Z                                        raise exc_details[1]
    4162026-03-12T20:39:21.6127434Z                                      File "/usr/lib/python3.12/contextlib.py", line 595, in __exit__
    4172026-03-12T20:39:21.6128441Z                                        if cb(*exc_details):
    4182026-03-12T20:39:21.6129004Z                                           ^^^^^^^^^^^^^^^^
    4192026-03-12T20:39:21.6129739Z                                      File "/usr/lib/python3.12/contextlib.py", line 144, in __exit__
    4202026-03-12T20:39:21.6130538Z                                        next(self.gen)
    4212026-03-12T20:39:21.6131928Z                                      File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_node.py", line 607, in assert_debug_log
    4222026-03-12T20:39:21.6133631Z                                        self._raise_assertion_error(f'Expected message(s) {remaining_expected!s} '
    4232026-03-12T20:39:21.6135138Z                                      File "/home/runner/work/libmultiprocess/libmultiprocess/test/functional/test_framework/test_node.py", line 241, in _raise_assertion_error
    4242026-03-12T20:39:21.6136391Z                                        raise AssertionError(self._node_msg(msg))
    4252026-03-12T20:39:21.6137326Z                                    AssertionError: [node 0] Expected message(s) ['canceled while executing'] not found in log:
    4262026-03-12T20:39:21.6139156Z                                     - 2026-03-12T20:38:58.573383Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
    4272026-03-12T20:39:21.6141402Z                                     - 2026-03-12T20:38:58.574563Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server: socket disconnected.
    4282026-03-12T20:39:21.6143811Z                                     - 2026-03-12T20:38:58.574851Z [capnp-loop] [ipc/capnp/protocol.cpp:53] [IpcLogFn] ipc: {bitcoin-node-9523/b-capnp-loop-9612} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE
    4292026-03-12T20:39:21.6146083Z                                     - 2026-03-12T20:38:58.575439Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-9523/b-capnp-loop-9989 (from pythread)} IPC server executing request [#15](/bitcoin-core-multiprocess/15/)
    4302026-03-12T20:39:21.6147562Z  test  2026-03-12T20:39:18.620194Z TestFramework (DEBUG): Closing down network thread 
    4312026-03-12T20:39:21.6148823Z  test  2026-03-12T20:39:18.686000Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later. 
    4322026-03-12T20:39:21.6151156Z  test  2026-03-12T20:39:18.686172Z TestFramework (WARNING): Not cleaning up dir /tmp/test_runner__🏃_20260312_203817/interface_ipc_553 
    4332026-03-12T20:39:21.6414296Z  test  2026-03-12T20:39:18.686254Z TestFramework (ERROR): Test failed. Test logging available at /tmp/test_runner__🏃_20260312_203817/interface_ipc_553/test_framework.log 
    4342026-03-12T20:39:21.6415780Z  test  2026-03-12T20:39:18.686477Z TestFramework (ERROR): 
    4352026-03-12T20:39:21.6417930Z  test  2026-03-12T20:39:18.686646Z TestFramework (ERROR): Hint: Call /home/runner/work/libmultiprocess/libmultiprocess/test/functional/combine_logs.py '/tmp/test_runner_₿_🏃_20260312_203817/interface_ipc_553' to consolidate all logs 
    4362026-03-12T20:39:21.6419596Z  test  2026-03-12T20:39:18.686725Z TestFramework (ERROR): 
    4372026-03-12T20:39:21.6420903Z  test  2026-03-12T20:39:18.686789Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 
    4382026-03-12T20:39:21.6422475Z  test  2026-03-12T20:39:18.686879Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 
    4392026-03-12T20:39:21.6423488Z  test  2026-03-12T20:39:18.686945Z TestFramework (ERROR): 
    4402026-03-12T20:39:21.6423860Z 
    4412026-03-12T20:39:21.6424011Z  node0 stderr ==================
    4422026-03-12T20:39:21.6424693Z WARNING: ThreadSanitizer: heap-use-after-free (virtual call vs free) (pid=9523)
    4432026-03-12T20:39:21.6425734Z   Read of size 8 at 0x723c0000f000 by thread T14:
    4442026-03-12T20:39:21.6495389Z     [#0](/bitcoin-core-multiprocess/0/) capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>::getParams() /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/capnp/capability.h:1129:16 (bitcoin-node+0x12c3f52) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4452026-03-12T20:39:21.6724382Z     [#1](/bitcoin-core-multiprocess/1/) std::__1::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<node::BlockWaitOptions>&&)::'lambda'(mp::CancelMonitor&)::operator()(mp::CancelMonitor&) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/type-context.h:77:51 (bitcoin-node+0x12ccc42) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4462026-03-12T20:39:21.7084859Z     [#2](/bitcoin-core-multiprocess/2/) kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, std::__1::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<node::BlockWaitOptions>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()()::'lambda0'()::operator()() const /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/proxy-io.h:744:100 (bitcoin-node+0x12cc903) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4472026-03-12T20:39:21.7336212Z     [#3](/bitcoin-core-multiprocess/3/) kj::Maybe<kj::Exception> kj::runCatchingExceptions<kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, std::__1::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<node::BlockWaitOptions>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()()::'lambda0'()>(mp::Accessor<mp::mining_fields::Context, 17>&&) /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/exception.h:371:5 (bitcoin-node+0x12cb771) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4482026-03-12T20:39:21.7639621Z     [#4](/bitcoin-core-multiprocess/4/) kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, std::__1::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<node::BlockWaitOptions>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()() /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/proxy-io.h:744:48 (bitcoin-node+0x12cb2d5) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4492026-03-12T20:39:21.7999045Z     [#5](/bitcoin-core-multiprocess/5/) kj::Function<void ()>::Impl<kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, std::__1::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>> const&, mp::TypeList<node::BlockWaitOptions>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>&&)::'lambda'()::operator()()::'lambda'()>::operator()() /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/function.h:142:14 (bitcoin-node+0x12cb12a) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4502026-03-12T20:39:21.8313229Z     [#6](/bitcoin-core-multiprocess/6/) kj::Function<void ()>::operator()() /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/function.h:119:12 (bitcoin-node+0xf6c0c1) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4512026-03-12T20:39:21.8316480Z     [#7](/bitcoin-core-multiprocess/7/) void mp::Unlock<mp::Lock, kj::Function<void ()>&>(mp::Lock&, kj::Function<void ()>&) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/util.h:210:5 (bitcoin-node+0xf6bce1) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4522026-03-12T20:39:21.8321424Z     [#8](/bitcoin-core-multiprocess/8/) void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'())::'lambda'()::operator()() const /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/proxy-io.h:382:17 (bitcoin-node+0x186c45f) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4532026-03-12T20:39:21.8329872Z     [#9](/bitcoin-core-multiprocess/9/) void std::__1::condition_variable::wait[abi:nqe220100]<void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'())::'lambda'()>(std::__1::unique_lock<std::__1::mutex>&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()) /tmp/libcxx-build/include/c++/v1/__condition_variable/condition_variable.h:111:13 (bitcoin-node+0x186c34e) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4542026-03-12T20:39:21.8430177Z     [#10](/bitcoin-core-multiprocess/10/) void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/include/mp/proxy-io.h:373:14 (bitcoin-node+0x186c29f) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4552026-03-12T20:39:21.8640511Z     [#11](/bitcoin-core-multiprocess/11/) mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/src/mp/proxy.cpp:423:34 (bitcoin-node+0x186c104) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4562026-03-12T20:39:21.8646401Z     [#12](/bitcoin-core-multiprocess/12/) std::__1::__invoke_result_impl<void, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>::type std::__1::__invoke[abi:nqe220100]<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>(mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0&&) /tmp/libcxx-build/include/c++/v1/__type_traits/invoke.h:90:27 (bitcoin-node+0x186be12) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4572026-03-12T20:39:21.8654150Z     [#13](/bitcoin-core-multiprocess/13/) void std::__1::__thread_execute[abi:nqe220100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0, 0ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>&, std::__1::__integer_sequence<unsigned long, 0ul>) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:161:3 (bitcoin-node+0x186bd8a) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4582026-03-12T20:39:21.8856247Z     [#14](/bitcoin-core-multiprocess/14/) void* std::__1::__thread_proxy[abi:nqe220100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>(void*) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:169:3 (bitcoin-node+0x186b8ad) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4592026-03-12T20:39:21.8859457Z 
    4602026-03-12T20:39:21.8859738Z   Previous write of size 8 at 0x723c0000f000 by thread T2:
    4612026-03-12T20:39:21.8860719Z     [#0](/bitcoin-core-multiprocess/0/) operator delete(void*, unsigned long) <null> (bitcoin-node+0x1d922c) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4622026-03-12T20:39:21.8862418Z     [#1](/bitcoin-core-multiprocess/1/) capnp::_::(anonymous namespace)::RpcConnectionState::RpcCallContext::~RpcCallContext() rpc.c++ (bitcoin-node+0x192bed9) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4632026-03-12T20:39:21.8864794Z     [#2](/bitcoin-core-multiprocess/2/) non-virtual thunk to capnp::_::(anonymous namespace)::RpcConnectionState::RpcCallContext::~RpcCallContext() rpc.c++ (bitcoin-node+0x192bf99) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4642026-03-12T20:39:21.8866714Z     [#3](/bitcoin-core-multiprocess/3/) kj::Refcounted::disposeImpl(void*) const <null> (bitcoin-node+0x1c7c564) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4652026-03-12T20:39:21.8868623Z     [#4](/bitcoin-core-multiprocess/4/) kj::Disposer::Dispose_<capnp::CallContextHook, true>::dispose(capnp::CallContextHook*, kj::Disposer const&) <null> (bitcoin-node+0x18aa971) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4662026-03-12T20:39:21.8870772Z     [#5](/bitcoin-core-multiprocess/5/) void kj::Disposer::dispose<capnp::CallContextHook>(capnp::CallContextHook*) const <null> (bitcoin-node+0x18aa8c5) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4672026-03-12T20:39:21.8873079Z     [#6](/bitcoin-core-multiprocess/6/) kj::Own<capnp::CallContextHook, std::nullptr_t>::dispose() <null> (bitcoin-node+0x18aa86e) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4682026-03-12T20:39:21.8874817Z     [#7](/bitcoin-core-multiprocess/7/) kj::Own<capnp::CallContextHook, std::nullptr_t>::~Own() <null> (bitcoin-node+0x18a2705) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4692026-03-12T20:39:21.8876652Z     [#8](/bitcoin-core-multiprocess/8/) kj::_::TupleElement<1u, kj::Own<capnp::CallContextHook, std::nullptr_t>>::~TupleElement() <null> (bitcoin-node+0x18ca3b5) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4702026-03-12T20:39:21.8878881Z     [#9](/bitcoin-core-multiprocess/9/) kj::_::TupleImpl<kj::_::Indexes<0ul, 1ul>, kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>::~TupleImpl() <null> (bitcoin-node+0x18ca31d) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4712026-03-12T20:39:21.8881335Z     [#10](/bitcoin-core-multiprocess/10/) kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>::~Tuple() <null> (bitcoin-node+0x18c9265) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4722026-03-12T20:39:21.9147975Z     [#11](/bitcoin-core-multiprocess/11/) kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>::~AttachmentPromiseNode() <null> (bitcoin-node+0x18c9a88) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4732026-03-12T20:39:21.9151689Z     [#12](/bitcoin-core-multiprocess/12/) void kj::dtor<kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>>(kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>&) <null> (bitcoin-node+0x18c9a25) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4742026-03-12T20:39:21.9156497Z     [#13](/bitcoin-core-multiprocess/13/) kj::_::FreePromiseNode<kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>, true>::free(kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>*) <null> (bitcoin-node+0x18c99d5) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4752026-03-12T20:39:21.9161078Z     [#14](/bitcoin-core-multiprocess/14/) void kj::_::freePromise<kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>>(kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>*) capability.c++ (bitcoin-node+0x1889635) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4762026-03-12T20:39:21.9257793Z     [#15](/bitcoin-core-multiprocess/15/) kj::_::AttachmentPromiseNode<kj::_::Tuple<kj::Own<capnp::LocalClient, std::nullptr_t>, kj::Own<capnp::CallContextHook, std::nullptr_t>>>::destroy() <null> (bitcoin-node+0x18c97c5) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4772026-03-12T20:39:21.9261110Z     [#16](/bitcoin-core-multiprocess/16/) kj::_::PromiseDisposer::dispose(kj::_::PromiseArenaMember*) /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/async-inl.h:354:11 (bitcoin-node+0xf3ea63) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4782026-03-12T20:39:21.9495127Z     [#17](/bitcoin-core-multiprocess/17/) kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>::dispose() /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/memory.h:398:7 (bitcoin-node+0xf3e9a9) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4792026-03-12T20:39:21.9497613Z     [#18](/bitcoin-core-multiprocess/18/) kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>::operator=(std::nullptr_t) <null> (bitcoin-node+0x1ad2e65) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4802026-03-12T20:39:21.9499379Z     [#19](/bitcoin-core-multiprocess/19/) kj::_::ForkHubBase::fire()::$_0::operator()() const async.c++ (bitcoin-node+0x1ac4e3d) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4812026-03-12T20:39:21.9501493Z     [#20](/bitcoin-core-multiprocess/20/) kj::Maybe<kj::Exception> kj::runCatchingExceptions<kj::_::ForkHubBase::fire()::$_0>(kj::_::ForkHubBase::fire()::$_0&&) async.c++ (bitcoin-node+0x1ab65d7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4822026-03-12T20:39:21.9504000Z     [#21](/bitcoin-core-multiprocess/21/) kj::_::ForkHubBase::fire() <null> (bitcoin-node+0x1ab62f4) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4832026-03-12T20:39:21.9505670Z     [#22](/bitcoin-core-multiprocess/22/) non-virtual thunk to kj::_::ForkHubBase::fire() <null> (bitcoin-node+0x1ab6709) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4842026-03-12T20:39:21.9507230Z     [#23](/bitcoin-core-multiprocess/23/) kj::EventLoop::turn() <null> (bitcoin-node+0x1aafc55) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4852026-03-12T20:39:21.9509485Z     [#24](/bitcoin-core-multiprocess/24/) kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const async.c++ (bitcoin-node+0x1ac3aa4) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4862026-03-12T20:39:21.9513707Z     [#25](/bitcoin-core-multiprocess/25/) void kj::WaitScope::runOnStackPool<kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2>(kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2&&) async.c++ (bitcoin-node+0x1ab1bc7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4872026-03-12T20:39:21.9517656Z     [#26](/bitcoin-core-multiprocess/26/) kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) <null> (bitcoin-node+0x1ab1741) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4882026-03-12T20:39:21.9520836Z     [#27](/bitcoin-core-multiprocess/27/) kj::Promise<unsigned long>::wait(kj::WaitScope&, kj::SourceLocation) /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/async-inl.h:1359:3 (bitcoin-node+0x186edd0) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4892026-03-12T20:39:21.9759649Z     [#28](/bitcoin-core-multiprocess/28/) mp::EventLoop::loop() /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/src/mp/proxy.cpp:244:68 (bitcoin-node+0x1865b14) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4902026-03-12T20:39:21.9762532Z     [#29](/bitcoin-core-multiprocess/29/) ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()::operator()() const /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/capnp/protocol.cpp:136:21 (bitcoin-node+0xf32132) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4912026-03-12T20:39:21.9767171Z     [#30](/bitcoin-core-multiprocess/30/) std::__1::__invoke_result_impl<void, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>::type std::__1::__invoke[abi:nqe220100]<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>(ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()&&) /tmp/libcxx-build/include/c++/v1/__type_traits/invoke.h:90:27 (bitcoin-node+0xf31ea2) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4922026-03-12T20:39:21.9773708Z     [#31](/bitcoin-core-multiprocess/31/) void std::__1::__thread_execute[abi:nqe220100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'(), 0ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>&, std::__1::__integer_sequence<unsigned long, 0ul>) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:161:3 (bitcoin-node+0xf31e1a) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4932026-03-12T20:39:21.9779178Z     [#32](/bitcoin-core-multiprocess/32/) void* std::__1::__thread_proxy[abi:nqe220100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>>(void*) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:169:3 (bitcoin-node+0xf31abd) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4942026-03-12T20:39:21.9781398Z 
    4952026-03-12T20:39:21.9781647Z   Thread T14 (tid=9989, running) created by thread T2 at:
    4962026-03-12T20:39:22.0060788Z     [#0](/bitcoin-core-multiprocess/0/) pthread_create <null> (bitcoin-node+0x152c1e) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4972026-03-12T20:39:22.0064035Z     [#1](/bitcoin-core-multiprocess/1/) std::__1::__libcpp_thread_create[abi:nqe220100](unsigned long*, void* (*)(void*), void*) /tmp/libcxx-build/include/c++/v1/__thread/support/pthread.h:182:10 (bitcoin-node+0x239afa) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4982026-03-12T20:39:22.0068524Z     [#2](/bitcoin-core-multiprocess/2/) std::__1::thread::thread[abi:nqe220100]<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0, 0>(mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0&&) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:218:16 (bitcoin-node+0x1868454) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    4992026-03-12T20:39:22.0073526Z     [#3](/bitcoin-core-multiprocess/3/) mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/src/mp/proxy.cpp:416:17 (bitcoin-node+0x1867ff4) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5002026-03-12T20:39:22.0077401Z     [#4](/bitcoin-core-multiprocess/4/) mp::ThreadMap::Server::dispatchCallInternal(unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /home/runner/work/libmultiprocess/libmultiprocess/build/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++:602:9 (bitcoin-node+0x1861d5e) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5012026-03-12T20:39:22.0081140Z     [#5](/bitcoin-core-multiprocess/5/) mp::ThreadMap::Server::dispatchCall(unsigned long, unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /home/runner/work/libmultiprocess/libmultiprocess/build/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++:591:14 (bitcoin-node+0x1861bd1) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5022026-03-12T20:39:22.0242196Z     [#6](/bitcoin-core-multiprocess/6/) virtual thunk to mp::ThreadMap::Server::dispatchCall(unsigned long, unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /home/runner/work/libmultiprocess/libmultiprocess/build/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++ (bitcoin-node+0x1861ec7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5032026-03-12T20:39:22.0245392Z     [#7](/bitcoin-core-multiprocess/7/) capnp::LocalClient::callInternal(unsigned long, unsigned short, capnp::CallContextHook&) <null> (bitcoin-node+0x18c6dbd) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5042026-03-12T20:39:22.0247800Z     [#8](/bitcoin-core-multiprocess/8/) capnp::LocalClient::call(unsigned long, unsigned short, kj::Own<capnp::CallContextHook, std::nullptr_t>&&, capnp::Capability::Client::CallHints)::'lambda'()::operator()() const <null> (bitcoin-node+0x18c680d) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5052026-03-12T20:39:22.0270071Z     [#9](/bitcoin-core-multiprocess/9/) kj::Promise<void> kj::_::MaybeVoidCaller<kj::_::Void, kj::Promise<void>>::apply<capnp::LocalClient::call(unsigned long, unsigned short, kj::Own<capnp::CallContextHook, std::nullptr_t>&&, capnp::Capability::Client::CallHints)::'lambda'()>(capnp::LocalClient::call(unsigned long, unsigned short, kj::Own<capnp::CallContextHook, std::nullptr_t>&&, capnp::Capability::Client::CallHints)::'lambda'()&, kj::_::Void&&) <null> (bitcoin-node+0x18ce491) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5062026-03-12T20:39:22.0275087Z     [#10](/bitcoin-core-multiprocess/10/) kj::_::TransformPromiseNode<kj::Promise<void>, kj::_::Void, capnp::LocalClient::call(unsigned long, unsigned short, kj::Own<capnp::CallContextHook, std::nullptr_t>&&, capnp::Capability::Client::CallHints)::'lambda'(), kj::_::PropagateException>::getImpl(kj::_::ExceptionOrValue&) <null> (bitcoin-node+0x18ce091) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5072026-03-12T20:39:22.0278405Z     [#11](/bitcoin-core-multiprocess/11/) kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&)::$_0::operator()() const async.c++ (bitcoin-node+0x1ac4d13) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5082026-03-12T20:39:22.0281217Z     [#12](/bitcoin-core-multiprocess/12/) kj::Maybe<kj::Exception> kj::runCatchingExceptions<kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&)::$_0>(kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&)::$_0&&) async.c++ (bitcoin-node+0x1ab51d7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5092026-03-12T20:39:22.0515398Z     [#13](/bitcoin-core-multiprocess/13/) kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&) <null> (bitcoin-node+0x1ab50cb) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5102026-03-12T20:39:22.0517027Z     [#14](/bitcoin-core-multiprocess/14/) kj::_::ChainPromiseNode::fire() <null> (bitcoin-node+0x1ab70e4) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5112026-03-12T20:39:22.0518514Z     [#15](/bitcoin-core-multiprocess/15/) non-virtual thunk to kj::_::ChainPromiseNode::fire() <null> (bitcoin-node+0x1ab7af9) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5122026-03-12T20:39:22.0519962Z     [#16](/bitcoin-core-multiprocess/16/) kj::EventLoop::turn() <null> (bitcoin-node+0x1aafc55) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5132026-03-12T20:39:22.0521972Z     [#17](/bitcoin-core-multiprocess/17/) kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const async.c++ (bitcoin-node+0x1ac3aa4) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5142026-03-12T20:39:22.0525780Z     [#18](/bitcoin-core-multiprocess/18/) void kj::WaitScope::runOnStackPool<kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2>(kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2&&) async.c++ (bitcoin-node+0x1ab1bc7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5152026-03-12T20:39:22.0529133Z     [#19](/bitcoin-core-multiprocess/19/) kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) <null> (bitcoin-node+0x1ab1741) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5162026-03-12T20:39:22.0531868Z     [#20](/bitcoin-core-multiprocess/20/) kj::Promise<unsigned long>::wait(kj::WaitScope&, kj::SourceLocation) /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/kj/async-inl.h:1359:3 (bitcoin-node+0x186edd0) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5172026-03-12T20:39:22.0636278Z     [#21](/bitcoin-core-multiprocess/21/) mp::EventLoop::loop() /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/libmultiprocess/src/mp/proxy.cpp:244:68 (bitcoin-node+0x1865b14) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5182026-03-12T20:39:22.0639303Z     [#22](/bitcoin-core-multiprocess/22/) ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()::operator()() const /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/capnp/protocol.cpp:136:21 (bitcoin-node+0xf32132) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5192026-03-12T20:39:22.0824125Z     [#23](/bitcoin-core-multiprocess/23/) std::__1::__invoke_result_impl<void, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>::type std::__1::__invoke[abi:nqe220100]<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>(ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()&&) /tmp/libcxx-build/include/c++/v1/__type_traits/invoke.h:90:27 (bitcoin-node+0xf31ea2) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5202026-03-12T20:39:22.0830809Z     [#24](/bitcoin-core-multiprocess/24/) void std::__1::__thread_execute[abi:nqe220100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'(), 0ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>&, std::__1::__integer_sequence<unsigned long, 0ul>) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:161:3 (bitcoin-node+0xf31e1a) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5212026-03-12T20:39:22.0836906Z     [#25](/bitcoin-core-multiprocess/25/) void* std::__1::__thread_proxy[abi:nqe220100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>>(void*) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:169:3 (bitcoin-node+0xf31abd) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5222026-03-12T20:39:22.0839537Z 
    5232026-03-12T20:39:22.0840321Z   Thread T2 'b-capnp-loop' (tid=9612, running) created by main thread at:
    5242026-03-12T20:39:22.0841552Z     [#0](/bitcoin-core-multiprocess/0/) pthread_create <null> (bitcoin-node+0x152c1e) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5252026-03-12T20:39:22.0843814Z     [#1](/bitcoin-core-multiprocess/1/) std::__1::__libcpp_thread_create[abi:nqe220100](unsigned long*, void* (*)(void*), void*) /tmp/libcxx-build/include/c++/v1/__thread/support/pthread.h:182:10 (bitcoin-node+0x239afa) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5262026-03-12T20:39:22.0847465Z     [#2](/bitcoin-core-multiprocess/2/) std::__1::thread::thread[abi:nqe220100]<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'(), 0>(ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()&&) /tmp/libcxx-build/include/c++/v1/__thread/thread.h:218:16 (bitcoin-node+0xf317e6) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5272026-03-12T20:39:22.0851416Z     [#3](/bitcoin-core-multiprocess/3/) ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/capnp/protocol.cpp:127:25 (bitcoin-node+0xf3161c) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5282026-03-12T20:39:22.1120711Z     [#4](/bitcoin-core-multiprocess/4/) ipc::capnp::(anonymous namespace)::CapnpProtocol::listen(int, char const*, interfaces::Init&) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/capnp/protocol.cpp:87:9 (bitcoin-node+0xf30e82) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5292026-03-12T20:39:22.1124246Z     [#5](/bitcoin-core-multiprocess/5/) ipc::(anonymous namespace)::IpcImpl::listenAddress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) /home/runner/work/libmultiprocess/libmultiprocess/src/ipc/interfaces.cpp:111:21 (bitcoin-node+0xf2a5d7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5302026-03-12T20:39:22.1127937Z     [#6](/bitcoin-core-multiprocess/6/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /home/runner/work/libmultiprocess/libmultiprocess/src/init.cpp:1505:22 (bitcoin-node+0x205c88) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5312026-03-12T20:39:22.1130803Z     [#7](/bitcoin-core-multiprocess/7/) AppInit(node::NodeContext&) /home/runner/work/libmultiprocess/libmultiprocess/src/bitcoind.cpp:242:43 (bitcoin-node+0x1db4c7) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5322026-03-12T20:39:22.1133275Z     [#8](/bitcoin-core-multiprocess/8/) main /home/runner/work/libmultiprocess/libmultiprocess/src/bitcoind.cpp:283:10 (bitcoin-node+0x1d9ef1) (BuildId: c2342a169a817ba8295d6726e1fdb3cfe82e4376)
    5332026-03-12T20:39:22.1134315Z 
    5342026-03-12T20:39:22.1136443Z SUMMARY: ThreadSanitizer: heap-use-after-free (virtual call vs free) /home/runner/work/libmultiprocess/libmultiprocess/depends/x86_64-pc-linux-gnu/include/capnp/capability.h:1129:16 in capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>::getParams()
    5352026-03-12T20:39:22.1139195Z ================== 
    5362026-03-12T20:39:22.1139428Z 
    
  44. Sjors marked this as ready for review on Mar 12, 2026
  45. maflcko commented at 9:02 pm on March 12, 2026: contributor

    More likely to be brittleness in the test itself under high CPU pressure:

    Does the test timeout not scale with –timeout-factor?

  46. Sjors commented at 9:18 pm on March 12, 2026: member

    More likely to be brittleness in the test itself under high CPU pressure:

    Does the test timeout not scale with –timeout-factor?

    We should probably make waitoptions.timeout scale with that factor.

  47. Sjors commented at 9:26 am on March 13, 2026: member
    I opened #257 to see if #253 makes the error go away. Since the new PR can’t use the cache from this PR, I noticed some mistakes in the build pipeline, which I’m fixing now.
  48. Sjors marked this as a draft on Mar 13, 2026
  49. Sjors force-pushed on Mar 13, 2026
  50. Sjors marked this as ready for review on Mar 13, 2026
  51. Sjors commented at 9:59 am on March 13, 2026: member
    Unfortunately the TSan job doesn’t reliably catch the known regression. I’d rather not make the job slower. Since it did catch it once, it would make sense to have longer runs on master. Let’s add those in a followup.
  52. enirox001 referenced this in commit 25e6fdcaf5 on Mar 13, 2026
  53. enirox001 referenced this in commit 9a71d533b4 on Mar 13, 2026
  54. Sjors commented at 1:33 pm on March 13, 2026: member

    I’ve been running TSan on an AMD Ryzen 9 7950X with 16 cores and 64 GB RAM. It’s not that easy to hit any of the failures #249 fixes. Sometimes it finds one after a few minutes, other times it finds nothing for half an hour. So I’m not surprised CI on this PR doesn’t consistently hit them.

    For finding heap-use-after-free it seems to help (a lot) to throttle CPU a bit on Podman (e.g. --cpus 8).

  55. maflcko commented at 1:45 pm on March 13, 2026: contributor
    If you feel fancy, you can try tsan-23 with the new adaptive delay feature (https://clang.llvm.org/docs/ThreadSanitizer.html#enabling-adaptive-delay). Though, tsan-23 isn’t released yet, so up to you, if you want to compile it here in CI or locally.
  56. enirox001 referenced this in commit ad75b147b5 on Mar 20, 2026
  57. ryanofsky commented at 5:39 pm on March 23, 2026: collaborator

    Concept ACK 746beea51399a02956ab9f2a7b5c8b1685f20337. Having these extra tests should be very useful.

    Do we think this PR is pretty finalized and ready for review now, or are there any issues still in the way? The changes seem ok but I did not look closely yet.

    Longer term thoughts not blocking this PR: It seems to me the overall CI setup could be substantially simplified with some basic bash scripting. There should be no need to copy long command lines multiple times in yaml files when bash is a scripting language that supports functions, and it should be easy to write a bash script exposing high level hooks for the yaml to call. Also, it would seem nice if none of this code had to be added to the master branch at all and it could live on a support branch as suggested in #232 so there is a clear separation between CI code that has no effect downstream and real code.

  58. Sjors commented at 5:54 pm on March 23, 2026: member

    Do we think this PR is pretty finalized and ready for review now

    It’s ready as far as I’m concerned, feedback welcome.

  59. ryanofsky approved
  60. ryanofsky commented at 6:30 pm on March 23, 2026: collaborator
    (deleted comment, submitted review to wrong pr)
  61. ci: add Bitcoin Core IPC tests (ASan + macOS) 0f29c38725
  62. Sjors force-pushed on Mar 24, 2026
  63. Sjors marked this as a draft on Mar 24, 2026
  64. ci: add TSan job with instrumented libc++ fb0fc84d55
  65. ci: set Bitcoin Core CI test repetition 55a9b557b1
  66. Sjors force-pushed on Mar 24, 2026
  67. Sjors commented at 10:58 am on March 24, 2026: member

    It seems to me the overall CI setup could be substantially simplified with some basic bash scripting. There should be no need to copy long command lines multiple times in yaml files when bash is a scripting language that supports functions, and it should be easy to write a bash script exposing high level hooks for the yaml to call.

    Agreed, done.

    0git diff 746beea HEAD --color-moved=dimmed-zebra
    

    There’s a few one-liners that might not worthy of a function (e.g. show_ccache_stats), but typically there’s a related function that’s larger (reset_ccache_stats) and it seems better to keep those in one place.

  68. Sjors marked this as ready for review on Mar 24, 2026
  69. achow101 referenced this in commit 4ecf473c36 on Mar 24, 2026
  70. fanquake referenced this in commit ac13aca72b on Mar 25, 2026
  71. ryanofsky approved
  72. ryanofsky commented at 3:58 pm on March 25, 2026: collaborator

    Light code review ACK 55a9b557b195247fb4532b755ec7775592c0b70c. I looked at all the code here and confirmed it should be safe and the build steps make sense. But did not look closely enough to follow all the internal logic and be very sure there aren’t bugs.

    Thanks for factoring out the command lines into bash functions! IMO the jobs are much easier to understand now.

    I probably would have gone further and moved configuration of the jobs as well to bash in /ci/configs/. And instead of defining lower-level bash hooks like add_llvm_apt_repository, install_apt_packages, install_llvm_alternatives I would have defined higher level-hooks like install_deps. But the current approach seems reasonable too.

    As a followup, it might be good if bitcoin core CI could follow the model of this PR and move its low-level command lines into libraries like ci_helpers.sh and bitcoin_core_ci.sh. If it did this we might be able to delete this code entirely from the libmultiprocess repository and just call the bitcoin core definitions.

    Alternately, maybe the approach marco originally suggested in #250 (comment) which invokes bitcoin core’s github actions could work. I’m not sure if there was a specific reason this PR did not take that approach.

  73. ryanofsky merged this on Mar 25, 2026
  74. ryanofsky closed this on Mar 25, 2026

  75. maflcko commented at 4:09 pm on March 25, 2026: contributor

    As a followup, it might be good if bitcoin core CI could follow the model of this PR and move its low-level command lines into libraries like ci_helpers.sh and bitcoin_core_ci.sh. If it did this we might be able to delete this code entirely from the libmultiprocess repository and just call the bitcoin core definitions.

    Bitcoin Core already does this. You can call (let’s say) env -i HOME="$HOME" PATH="$PATH" USER="$USER" FILE_ENV="./ci/test/00_setup_env_arm.sh" ./ci/test_run_all.sh, where FILE_ENV denotes the config and the run script will run the CI.

    Alternately, maybe the approach marco originally suggested in #250 (comment) which invokes bitcoin core’s github actions could work. I’m not sure if there was a specific reason this PR did not take that approach.

    I think there is no hook for replace_subtree and no hook for for _ in $(seq 1 "${runs}"); do and the cache will be less fine-grained, but it should be possible to add those.

  76. ryanofsky commented at 4:51 pm on March 25, 2026: collaborator

    So it sounds like this PR were modified to call bitcoin core’s test_run_all.sh or call its github actions, it might lose the ability to:

    1. Run ipc tests repeatedly
    2. Skip bitcoin core tests not related to IPC
    3. Have fine-grained caching

    (1) and (2) do seem pretty useful and not having (3) seems like it could be a major drawback if every libmultiprocess change broke the depends cache and required depends rebuilds, but unclear if that would happen. In any case, it sound like it might be easier to modify bitcoin core’s ci to support these things than I initially though.

  77. Sjors deleted the branch on Mar 25, 2026
  78. Sjors commented at 5:42 pm on March 25, 2026: member
    One advantage of moving towards the Bitcoin Core approach of doing ~everything with bash scripts, is that it’s more CI agnostic.
  79. maflcko commented at 12:21 pm on March 26, 2026: contributor

    So it sounds like this PR were modified to call bitcoin core’s test_run_all.sh or call its github actions, it might lose the ability to:

    1. Run ipc tests repeatedly
    
    2. Skip bitcoin core tests not related to IPC
    
    3. Have fine-grained caching
    

    (1) and (2) do seem pretty useful and not having (3) seems like it could be a major drawback if every libmultiprocess change broke the depends cache and required depends rebuilds, but unclear if that would happen. In any case, it sound like it might be easier to modify bitcoin core’s ci to support these things than I initially though.

    I think they are all supported already:

    • There is a TEST_RUNNER_EXTRA= flag, which can be set to TEST_RUNNER_EXTRA=$(python3 -c "import sys; import os; sys.path.append(os.path.abspath('build/test/functional')); from test_runner import ALL_SCRIPTS; print(' '.join(s for s in ALL_SCRIPTS if s.startswith('interface_ipc')))"), possibly repeated
    • There is no equivalent flag for ctest, but it should be trivial to add it in a one-line patch
    • The caching can be controlled via DANGER_CI_ON_HOST_FOLDERS, which exposes a folder for each cache

    Not sure if there is a hook for replace_subtree, or if this can be added with a trivial one-line patch.

  80. ryanofsky referenced this in commit c7cdd9dad6 on Mar 26, 2026
  81. ryanofsky commented at 2:02 pm on March 26, 2026: collaborator

    Hopefully this is the last CI headache to resolve, but the bitcoin core linter wants LC_ALL to be set in bash scripts added here:

    0Missing "export LC_ALL=C" (to avoid locale dependence) as first non-comment non-empty line in src/ipc/libmultiprocess/ci/scripts/bitcoin_core_ci.sh
    1Missing "export LC_ALL=C" (to avoid locale dependence) as first non-comment non-empty line in src/ipc/libmultiprocess/ci/scripts/ci_helpers.sh
    2Missing "export LC_ALL=C" (to avoid locale dependence) as first non-comment non-empty line in src/ipc/libmultiprocess/ci/scripts/config.sh
    

    https://github.com/bitcoin/bitcoin/actions/runs/23598079789/job/68720184763?pr=34804

  82. Sjors commented at 3:33 pm on March 26, 2026: member
    Fixed in #265.

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/libmultiprocess. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-03-29 21:30 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me