The wallet rebroadcast functionality learns about new blocks via the validation interface queue. To avoid test failures such as https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/31119387#L466 , we can sync with the queue before advancing the test.
test: Add missing syncwithvalidationinterfacequeue #18228
pull MarcoFalke wants to merge 1 commits into bitcoin:master from MarcoFalke:2002-testFixRace changing 1 files +4 −0-
MarcoFalke commented at 9:09 PM on February 28, 2020: member
-
test: Add missing syncwithvalidationinterfacequeue faf6f156ff
-
MarcoFalke commented at 9:10 PM on February 28, 2020: member
This was easier to debug thanks to f9abf4ab6d3d3e4d4b7e90723020b5422a141a6f by @jkczyz
- fanquake added the label Tests on Feb 28, 2020
-
DrahtBot commented at 10:19 PM on February 28, 2020: member
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
No conflicts as of last run.
-
jonatack commented at 3:47 PM on February 29, 2020: member
ACK faf6f156 this makes sense; the fix was previously added to mempool_persist.py and wallet_zapwallettxes.py in #12217 and to wallet_balance.py in #16302. It is also used in src/test/validation_block_tests.cpp (processnewblock_signals_ordering) and src/bench/wallet_balance.cpp.
Is this an appveyor-only or Win-only issue? I was unable to reproduce locally on Debian; 200 test runs passed without and without the change:
$ (for i in {1..200}; do test/functional/wallet_resendwallettransactions.py --pdbonfailure ; done) -
MarcoFalke commented at 5:27 PM on February 29, 2020: member
I was unable to reproduce locally
Those races generally only become visible when one of the threads (e.g scheduler thread) gets paused for a long time on a CPU due to congestion.
You might be able to reproduce locally by adding a MilliSleep pause in the code of the validation interface.
- luke-jr referenced this in commit 18f30b9dc9 on Mar 5, 2020
- MarcoFalke merged this on Mar 12, 2020
- MarcoFalke closed this on Mar 12, 2020
- MarcoFalke deleted the branch on Mar 12, 2020
- sidhujag referenced this in commit b5531960ba on Mar 13, 2020
- sidhujag referenced this in commit e8599a1feb on Nov 10, 2020
- Fabcien referenced this in commit 949d212a83 on Jan 7, 2021
- PastaPastaPasta referenced this in commit 39136e6c43 on Jun 27, 2021
- PastaPastaPasta referenced this in commit d6fadb28bb on Jun 28, 2021
- PastaPastaPasta referenced this in commit 35bb03740e on Jun 29, 2021
- PastaPastaPasta referenced this in commit 785e7b99ff on Jul 1, 2021
- PastaPastaPasta referenced this in commit b8676ddc7d on Jul 1, 2021
- PastaPastaPasta referenced this in commit 08c46597d3 on Dec 22, 2021
- PastaPastaPasta referenced this in commit 31f51f90bb on Dec 22, 2021
- PastaPastaPasta referenced this in commit 58c33d35fd on Dec 22, 2021
- PastaPastaPasta referenced this in commit 37634112f2 on Dec 28, 2021
- DrahtBot locked this on Feb 15, 2022