mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
For reasons I do not really grok, this PR changes the timing behavior of the
functional tests to reliably expose a deadlock in the claimpegin RPC that has
existed since the 0.17 rebase.
The mechanism is: in `claimpegin` in src/wallet/rpcwallet.cpp:5873, we call
`AcceptToMemoryPoolWorker`. This requires cs_main to be locked, which it is
not (contrast Core's `testmempoolaccept` RPC, which similarly calls
`AcceptToMemoryPoolWorker` from the RPC thread, and locks cs_main immediately
before).
We do *say* that it is locked, in the `LockAssertion` one the line above, but
this was added in
|
||
|---|---|---|
| .. | ||
| 00_setup_env.sh | ||
| 00_setup_env_arm.sh | ||
| 00_setup_env_i686_centos.sh | ||
| 00_setup_env_mac.sh | ||
| 00_setup_env_mac_host.sh | ||
| 00_setup_env_native_asan.sh | ||
| 00_setup_env_native_fuzz.sh | ||
| 00_setup_env_native_fuzz_with_valgrind.sh | ||
| 00_setup_env_native_nowallet.sh | ||
| 00_setup_env_native_qt5.sh | ||
| 00_setup_env_native_tsan.sh | ||
| 00_setup_env_native_valgrind.sh | ||
| 00_setup_env_s390x.sh | ||
| 00_setup_env_s390x_host.sh | ||
| 00_setup_env_win64.sh | ||
| 03_before_install.sh | ||
| 04_install.sh | ||
| 05_before_script.sh | ||
| 06_script_a.sh | ||
| 06_script_b.sh | ||
| wrap-qemu.sh | ||
| wrap-valgrind.sh | ||