Is there an existing issue for this?
- I have searched the existing issues
Current behaviour
The WalletCreateTxUsePresetInputsAndCoinSelection benchmark crashes on master due to the commit 758501b71391136c33b525b1a0109b990d4f463e introduced in #25273 (I used git bisect to verify).
0valgrind ./src/bench/bench_bitcoin -filter=WalletCreateTxUsePresetInputsAndCoinSelection -min-time=10000
1==34277== Memcheck, a memory error detector
2==34277== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
3==34277== Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
4==34277== Command: ./src/bench/bench_bitcoin -filter=WalletCreateTxUsePresetInputsAndCoinSelection -min-time=10000
5==34277==
6bench_bitcoin: bench/wallet_create_tx.cpp:135: WalletCreateTx(ankerl::nanobench::Bench&, OutputType, bool, std::optional<PreSelectInputs>)::<lambda()>: Assertion `tx_res' failed.
7==34277==
8==34277== Process terminating with default action of signal 6 (SIGABRT)
9==34277== at 0x4DD79FC: __pthread_kill_implementation (pthread_kill.c:44)
10==34277== by 0x4DD79FC: __pthread_kill_internal (pthread_kill.c:78)
11==34277== by 0x4DD79FC: pthread_kill@@GLIBC_2.34 (pthread_kill.c:89)
12==34277== by 0x4D83475: raise (raise.c:26)
13==34277== by 0x4D697F2: abort (abort.c:79)
14==34277== by 0x4D6971A: __assert_fail_base.cold (assert.c:92)
15==34277== by 0x4D7AE95: __assert_fail (assert.c:101)
16==34277== by 0x29607B: operator() (wallet_create_tx.cpp:135)
17==34277== by 0x29607B: ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<WalletCreateTx(ankerl::nanobench::Bench&, OutputType, bool, std::optional<PreSelectInputs>)::{lambda()#3}>(WalletCreateTx(ankerl::nanobench::Bench&, OutputType, bool, std::optional<PreSelectInputs>)::{lambda()#3}&&) [clone .isra.0] (nanobench.h:1221)
18==34277== by 0x297F81: WalletCreateTx(ankerl::nanobench::Bench&, OutputType, bool, std::optional<PreSelectInputs>) [clone .constprop.0] [clone .isra.0] (wallet_create_tx.cpp:132)
19==34277== by 0x21B74A: operator() (std_function.h:590)
20==34277== by 0x21B74A: benchmark::BenchRunner::RunAll(benchmark::Args const&) (bench.cpp:119)
21==34277== by 0x1F8B96: main (bench_bitcoin.cpp:132)
22==34277==
23==34277== HEAP SUMMARY:
24==34277== in use at exit: 48,159,834 bytes in 72,552 blocks
25==34277== total heap usage: 1,668,158 allocs, 1,595,606 frees, 552,252,252 bytes allocated
26==34277==
27==34277== LEAK SUMMARY:
28==34277== definitely lost: 0 bytes in 0 blocks
29==34277== indirectly lost: 0 bytes in 0 blocks
30==34277== possibly lost: 912 bytes in 3 blocks
31==34277== still reachable: 48,158,922 bytes in 72,549 blocks
32==34277== suppressed: 0 bytes in 0 blocks
33==34277== Rerun with --leak-check=full to see details of leaked memory
34==34277==
35==34277== For lists of detected and suppressed errors, rerun with: -s
36==34277== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
37Aborted
Expected behaviour
No crash
Steps to reproduce
git checkout master && make -j$(nproc)
valgrind ./src/bench/bench_bitcoin -filter=WalletCreateTxUsePresetInputsAndCoinSelection -min-time=10000
Relevant log output
No response
How did you obtain Bitcoin Core
Compiled from source
What version of Bitcoin Core are you using?
master@758501b71391136c33b525b1a0109b990d4f463e
Operating system and version
Ubuntu 22.04.3 LTS
Machine specifications
No response