From 54760fdf933a7a8b677994fef3254f5fc943e05f Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Sat, 1 Feb 2020 17:29:35 +0100 Subject: [PATCH] Add suppressions for TSan. --- MANIFEST.in | 1 + tools/CMakeLists.txt | 1 + tools/jenkins/Sanitizers.sh | 2 +- tools/thread_sanitizer.supp | 11 +++++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tools/thread_sanitizer.supp diff --git a/MANIFEST.in b/MANIFEST.in index ecb059bb3e..c31b50688f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1763,6 +1763,7 @@ include tools/tesh/set-return.tesh include tools/tesh/set-timeout.tesh include tools/tesh/setenv.tesh include tools/tesh/tesh.py +include tools/thread_sanitizer.supp include AUTHORS include CITATION.bib include CMakeLists.txt diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 04b2116865..426d36c5dd 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -11,5 +11,6 @@ set(bin_files ${bin_files} ${CMAKE_CURRENT_SOURCE_DIR}/fix-paje-trace.sh set(txt_files ${txt_files} ${CMAKE_CURRENT_SOURCE_DIR}/pkg-config/simgrid.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/address_sanitizer.supp + ${CMAKE_CURRENT_SOURCE_DIR}/thread_sanitizer.supp ${CMAKE_CURRENT_SOURCE_DIR}/simgrid.supp ${CMAKE_CURRENT_SOURCE_DIR}/simgrid2vite.sed PARENT_SCOPE) diff --git a/tools/jenkins/Sanitizers.sh b/tools/jenkins/Sanitizers.sh index 3a35fadd04..985042ffcd 100755 --- a/tools/jenkins/Sanitizers.sh +++ b/tools/jenkins/Sanitizers.sh @@ -22,7 +22,7 @@ then SANITIZER_OPTIONS="-Denable_address_sanitizer=ON -Denable_undefined_sanitizer=OFF -Denable_thread_sanitizer=OFF" elif [ "${SANITIZER}" = "thread" ] then - export TSAN_OPTIONS="memory_limit_mb=1500" + export TSAN_OPTIONS="memory_limit_mb=1500 suppressions=$WORKSPACE/tools/thread_sanitizer.supp" SANITIZER_OPTIONS="-Denable_address_sanitizer=OFF -Denable_undefined_sanitizer=OFF -Denable_thread_sanitizer=ON" elif [ "${SANITIZER}" = "undefined" ] then diff --git a/tools/thread_sanitizer.supp b/tools/thread_sanitizer.supp new file mode 100644 index 0000000000..3835a16795 --- /dev/null +++ b/tools/thread_sanitizer.supp @@ -0,0 +1,11 @@ +# Thread sanitizer suppressions for stuff that we cannot control + +# Race reported around std::__cxx11::stod / __gnu_cxx::__stoa when the value of +# errno is saved and restored +race:ext/string_conversions.h + +# False positive seen when simultaneously destroying a CommPtr in s4u-app-masterworkers-parallel +# For more information, see +# https://stackoverflow.com/questions/24446561/threadsanitizer-reports-data-race-on-operator-deletevoid-when-using-embedde +# and more precisely the answer: https://stackoverflow.com/a/49173574 +race:simgrid::kernel::activity::CommImpl::~CommImpl() -- 2.20.1