diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ca9d1c7a74..0da9c4e1410 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -404,7 +404,7 @@ jobs: ASAN_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer" MSAN_OPTIONS: "symbolize=1" MSAN_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer" - TSAN_OPTIONS: "symbolize=1" + TSAN_OPTIONS: "symbolize=1:suppressions=${{ github.workspace }}/vortex-ffi/tsan_suppressions.txt" TSAN_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer" VORTEX_SKIP_SLOW_TESTS: "1" # -Cunsafe-allow-abi-mismatch=sanitizer: libraries like compiler_builtins diff --git a/vortex-ffi/README.md b/vortex-ffi/README.md index 368aac7cb8c..35911ccccc2 100644 --- a/vortex-ffi/README.md +++ b/vortex-ffi/README.md @@ -76,6 +76,7 @@ cargo +nightly test -Zbuild-std \ ThreadSanitizer: ```sh +TSAN_OPTIONS="suppressions=$HOME/vortex/vortex-ffi/tsan_suppressions.txt" \ RUSTFLAGS="-Z sanitizer=thread -Cunsafe-allow-abi-mismatch=sanitizer" \ cargo +nightly test -Zbuild-std \ --no-default-features --target \ diff --git a/vortex-ffi/tsan_suppressions.txt b/vortex-ffi/tsan_suppressions.txt new file mode 100644 index 00000000000..6f9ffaae597 --- /dev/null +++ b/vortex-ffi/tsan_suppressions.txt @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright the Vortex contributors + +# https://github.com/vortex-data/vortex/pull/7244 +# This is likely a false positive in TSan for oneshot::channel and kanal +# where ordering is correct but uses an explicit fence and not relaxed load +race:oneshot-*/src/channel.rs