-
Notifications
You must be signed in to change notification settings - Fork 36.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: Remove spurious double lock tsan suppressions by bumping to clang-12 #21669
Conversation
Concept ACK. Any links to clang developers notes (if known)? |
No, sorry not aware of any links |
I can no longer observe the need for this suppression. This reverts commit fa1fc53.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very happy to see that these suppressions are no longer needed: especially the mutex:UpdateTip
and race:ProcessNewBlock
suppressions.
Every file or function level suppression risks hiding future issues in the same file or function, so I think it makes sense to continually try to prune the list of suppression and keep it as short as possible. Thanks for doing that @MarcoFalke!
cr ACK fadea0b assuming CI passes and more specifically that newer Clang agrees that these TSan suppressions are no longer needed.
Aside:
Great TSan field report posted in April 2021: "Eliminating Data Races in Firefox – A Technical Report". Recommended reading for all sanitizer fans! :)
Thanks! 👍 |
It makes local TSan tests a bit complicated as clang-12 is not available in the Focal repo for now. |
Tested locally:
|
What is the point of running a sanitizer with known bugs in the first place? If you really want to run a thread sanitizer in Focal, you can use the gcc one. Apparently it is not recommended, but it doesn't need the spurious suppressions either. |
I did not mean it. Just stating a fact that I need a hirsute distro now. |
It is also possible to install another clang version on Focal, see https://apt.llvm.org/. Though, personally I use vms or docker/podman to run the version of Ubuntu I want. |
:) |
f2ef5a8 test: Fix TSan suppression (Hennadii Stepanov) Pull request description: This PR is a #21669 follow up, and fixes [locally running `make check`](bitcoin/bitcoin#21669 (comment)). ACKs for top commit: MarcoFalke: cr ACK f2ef5a8 Tree-SHA512: bb0c4d1707c6194358d2e9abfed5aa8dd487e014199025fb89f6e5a66d774af041b46a03358a9a5412e1683675c05c42a3b719217d940412ee3fe1ed18a5274c
f2ef5a8 test: Fix TSan suppression (Hennadii Stepanov) Pull request description: This PR is a bitcoin#21669 follow up, and fixes [locally running `make check`](bitcoin#21669 (comment)). ACKs for top commit: MarcoFalke: cr ACK f2ef5a8 Tree-SHA512: bb0c4d1707c6194358d2e9abfed5aa8dd487e014199025fb89f6e5a66d774af041b46a03358a9a5412e1683675c05c42a3b719217d940412ee3fe1ed18a5274c
f2ef5a8 test: Fix TSan suppression (Hennadii Stepanov) Pull request description: This PR is a bitcoin#21669 follow up, and fixes [locally running `make check`](bitcoin#21669 (comment)). ACKs for top commit: MarcoFalke: cr ACK f2ef5a8 Tree-SHA512: bb0c4d1707c6194358d2e9abfed5aa8dd487e014199025fb89f6e5a66d774af041b46a03358a9a5412e1683675c05c42a3b719217d940412ee3fe1ed18a5274c
f2ef5a8 test: Fix TSan suppression (Hennadii Stepanov) Pull request description: This PR is a bitcoin#21669 follow up, and fixes [locally running `make check`](bitcoin#21669 (comment)). ACKs for top commit: MarcoFalke: cr ACK f2ef5a8 Tree-SHA512: bb0c4d1707c6194358d2e9abfed5aa8dd487e014199025fb89f6e5a66d774af041b46a03358a9a5412e1683675c05c42a3b719217d940412ee3fe1ed18a5274c
f2ef5a8 test: Fix TSan suppression (Hennadii Stepanov) Pull request description: This PR is a bitcoin#21669 follow up, and fixes [locally running `make check`](bitcoin#21669 (comment)). ACKs for top commit: MarcoFalke: cr ACK f2ef5a8 Tree-SHA512: bb0c4d1707c6194358d2e9abfed5aa8dd487e014199025fb89f6e5a66d774af041b46a03358a9a5412e1683675c05c42a3b719217d940412ee3fe1ed18a5274c
The double lock warnings appeared in #19041, but they didn't make any sense. Also, our sync module would detect double locks, if there were any.
Bumping to clang-12 allows us to remove the spurious suppressions needed to run the tests, so do that.