test: suppress libzmq-induced thread-sanitizer false positives

- libzmq is not tsan-instrumented, so tsan cannot see the happens-before
  its queues establish between user threads and libzmq I/O threads,
  producing false-positive data races on message buffers
- add test/thread_sanitizer_suppressions.txt and point TSAN_OPTIONS at it
  via the sanitizers job env so it reaches the tests and their device
  subprocesses
- suppress: accesses made directly from libzmq, the zero-copy message
  deleters libzmq runs from msg_t::close, shmem receive-side metadata
  reads, and std::regex/locale lazy-init races in libstdc++
This commit is contained in:
Dennis Klein
2026-06-09 21:57:08 +02:00
committed by Dennis Klein
parent 4b2c6cafac
commit a0e8271aca
2 changed files with 34 additions and 0 deletions

View File

@@ -68,6 +68,8 @@ jobs:
if: github.repository == 'FairRootGroup/FairMQ'
name: ${{ matrix.sanitizer.name }}
runs-on: ubuntu-24.04
env:
TSAN_OPTIONS: suppressions=${{ github.workspace }}/test/thread_sanitizer_suppressions.txt
strategy:
fail-fast: false
matrix: