From 4e4d64e84f2769d03a8f00ee0547d297e87a63d8 Mon Sep 17 00:00:00 2001 From: Maciej Salwa Date: Thu, 24 Sep 2026 07:09:26 +0000 Subject: [PATCH] Add TSan job to sanitizer CI --- .bazelrc | 11 +++++++++++ .github/workflows/sanitizers.yml | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.bazelrc b/.bazelrc index 782efb3d..74a144ea 100644 --- a/.bazelrc +++ b/.bazelrc @@ -106,6 +106,17 @@ build:asan --config=asan_ubsan_lsan build:ubsan --config=asan_ubsan_lsan build:lsan --config=asan_ubsan_lsan +# ThreadSanitizer — must run as a separate job +build:tsan --config=with_debug_symbols +build:tsan --copt=-O1 +build:tsan --copt=-fsanitize=thread +build:tsan --linkopt=-fsanitize=thread +build:tsan --platform_suffix=tsan +build:tsan --@score_cpp_policies//sanitizers/flags:tsan=True +test:tsan --run_under=@score_cpp_policies//sanitizers:wrapper +test:tsan --test_tag_filters=-no-tsan +test:tsan --build_tests_only + # ------------------------------------------------------------------------------- # Clang-tidy static analysis — powered by score_cpp_policies # ------------------------------------------------------------------------------- diff --git a/.github/workflows/sanitizers.yml b/.github/workflows/sanitizers.yml index b2020bab..367d28f6 100644 --- a/.github/workflows/sanitizers.yml +++ b/.github/workflows/sanitizers.yml @@ -36,11 +36,17 @@ jobs: strategy: fail-fast: false matrix: - config: [asan_ubsan_lsan] + config: [asan_ubsan_lsan, tsan] steps: - name: Checkout code uses: actions/checkout@v4.2.2 + - name: Reduce ASLR entropy for TSan + if: matrix.config == 'tsan' + run: | + sudo sysctl -w vm.mmap_rnd_bits=28 + test "$(sudo sysctl -n vm.mmap_rnd_bits)" = 28 + - name: Setup Bazel uses: eclipse-score/cicd-actions/setup-bazel-cache@212bbf86267e9381da9d2daf962d12f6feafbc90 # v0.0.2 with: