diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-11-09 09:58:39 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2021-11-09 09:58:51 +0100 |
commit | 94db963de501e4aba6e5d8150a01ceb85753dee1 (patch) | |
tree | 823e9d70163a42007f6f039e0585f54224669611 /src/util/thread.cpp | |
parent | 49143477e774476635c65253ff4c7222df875eb3 (diff) | |
parent | facc352648e4fe1ed9b406400b6e4a9d51f30349 (diff) |
Merge bitcoin/bitcoin#23300: test: Implicitly sync after generate*, unless opted out
facc352648e4fe1ed9b406400b6e4a9d51f30349 test: Implicitly sync after generate*, unless opted out (MarcoFalke)
Pull request description:
The most frequent failure in functional tests are intermittent races. Fixing such bugs is cumbersome because it involves:
* Noticing the failure
* Fetching and reading the log to determine the test case that failed
* Adding a `self.sync_all()` where it was forgotten
* Spamming out a pr and waiting for review, which is already sparse
Also, writing a linter to catch those is not possible, nor is review effective in finding these bugs prior to merge.
Fix all future intermittent races caused by a missing sync_block call by calling `sync_all` implicitly after each `generate*`, unless opted out. This ensures that the code is race-free (with regards to blocks) when the tests pass once, instead of our current approach where the code can never be guaranteed to be race-free.
There are some scripted-diff cleanups (see https://github.com/bitcoin/bitcoin/pull/22567), but they will be submitted in a follow-up to reduce the conflicts in this pull.
ACKs for top commit:
lsilva01:
tACK facc352 on Ubuntu 20.04
brunoerg:
tACK facc352648e4fe1ed9b406400b6e4a9d51f30349 on MacOS 11.6
Tree-SHA512: 046a40a066b4a3bd28a3077bd654fa8887442dd1f0ec6fd11671865809ef02376f126eb667a1320ebd67b6e372c78c00dbf8bd25d86ed86f1d9a25363103ed97
Diffstat (limited to 'src/util/thread.cpp')
0 files changed, 0 insertions, 0 deletions