HomePhabricator

[backport#19041] ci: tsan with -stdlib=libc++-10

Description

[backport#19041] ci: tsan with -stdlib=libc++-10

Summary:
ci: Remove unused workaround (MarcoFalke)
ci: Install llvm to get llvm symbolizer (MarcoFalke)
test: Add more tsan suppressions (MarcoFalke)
ci: Mute depends logs completely (MarcoFalke)
test: Extend tsan suppressions for clang stdlib (MarcoFalke)
ci: Use libc++ instead of libstdc++ for tsan (MarcoFalke)
ci: Set halt_on_error=1 for tsan (MarcoFalke)
ci: Deduplicate DOCKER_EXEC (MarcoFalke)
cirrus: Remove no longer needed install step (MarcoFalke)

Pull request description:

According to the [ThreadSanitizer docs](https://clang.llvm.org/docs/ThreadSanitizer.html#current-status):
>  C++11 threading is supported with **llvm libc++**.

For example, the thread sanitizer build is currently not checking for double lock of mutexes.

Fixes (partially) https://github.com/bitcoin/bitcoin/issues/19038#issuecomment-632138003

EDIT: included our own code's suppressions so the test is green

Backport of Core PR19041

Test Plan:
with clang-10 on archlinux:

cmake -GNinja -DENABLE_SANITIZERS=thread -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
ninja check check-functional

threadsanitizer is green only gives out warnings about code that is exclusive to us (specifically, rcu_tests.cpp and doublelock of mutex in paymentserver qt code)

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Subscribers: deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D7547

Details

Provenance
fanquake <fanquake@gmail.com>Authored on Jun 3 2020, 13:26
majcostaCommitted on Sep 24 2020, 11:53
majcostaPushed on Sep 24 2020, 11:53
Reviewer
Restricted Project
Differential Revision
D7547: [backport#19041] ci: tsan with -stdlib=libc++-10
Parents
rABC30f985991433: test: add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py
Branches
Unknown
Tags
Unknown