From ae31de32ee49951e4d107043f88dbfed07473c47 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Wed, 14 Aug 2019 22:16:05 +0200 Subject: build: TSan: add src/.tsan-suppressions Uses runtime suppressions instead of a blacklist, which can only ignore whole files/functions. Ref: https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233 --- .travis.yml | 2 +- src/.tsan-suppressions | 2 ++ src/nvim/README.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 src/.tsan-suppressions diff --git a/.travis.yml b/.travis.yml index 04592b6067..9d8a2ea59b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ env: -DCMAKE_TOOLCHAIN_FILE=$TRAVIS_BUILD_DIR/cmake/i386-linux-gnu.toolchain.cmake" # Environment variables for Clang sanitizers. - ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:log_path=$LOG_DIR/asan" - - TSAN_OPTIONS="log_path=$LOG_DIR/tsan" + - TSAN_OPTIONS="log_path=$LOG_DIR/tsan:suppressions=$TRAVIS_BUILD_DIR/src/.tsan-suppressions" - UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan" # Environment variables for Valgrind. - VALGRIND_LOG="$LOG_DIR/valgrind-%p.log" diff --git a/src/.tsan-suppressions b/src/.tsan-suppressions new file mode 100644 index 0000000000..c004a468a6 --- /dev/null +++ b/src/.tsan-suppressions @@ -0,0 +1,2 @@ +# Ref: https://github.com/neovim/neovim/pull/10591#issuecomment-521248233 +race:starting diff --git a/src/nvim/README.md b/src/nvim/README.md index 3c956cb2e9..64d729cc8b 100644 --- a/src/nvim/README.md +++ b/src/nvim/README.md @@ -63,7 +63,7 @@ Enable the sanitizer(s) via these environment variables: export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer export MSAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer - export TSAN_OPTIONS="external_symbolizer_path=/usr/lib/llvm-5.0/bin/llvm-symbolizer log_path=${HOME}/logs/tsan" + export TSAN_OPTIONS="log_path=${HOME}/logs/tsan:suppressions=${NVIM_PATH}/src/.tsan-suppressions" Logs will be written to `${HOME}/logs/*san.PID`. -- cgit