Here is a simple script to use TSAN.
#!/bin/bash
|
|
git clone --depth=1 --recurse-submodules git@github.com:MariaDB/server.git server
|
|
mkdir debug_build
|
cd debug_build
|
|
COMPILER_FLAGS="-fdiagnostics-color -fno-omit-frame-pointer -gsplit-dwarf"
|
cmake \
|
-G Ninja \
|
-DWITH_TSAN=1 \
|
-DCMAKE_BUILD_TYPE=Debug \
|
-DCMAKE_C_FLAGS=$COMPILER_FLAGS \
|
-DCMAKE_CXX_FLAGS=$COMPILER_FLAGS \
|
-DWITH_SAFEMALLOC=0 \
|
-DWITH_WSREP=0 \
|
-DWITH_UNIT_TESTS=0 \
|
-DWITH_UNITTEST=0 \
|
-DWITH_CLIENT=0 \
|
-DWITH_ZLIB=system \
|
-DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \
|
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
|
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
|
-DWITHOUT_CONNECT_STORAGE_ENGINE=1 \
|
-DWITHOUT_SPHINX_STORAGE_ENGINE=1 \
|
-DWITHOUT_TOKUDB_STORAGE_ENGINE=1 \
|
-DWITHOUT_SPIDER_STORAGE_ENGINE=1 \
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
|
../server
|
|
ninja -j4
|
|
cd mysql-test
|
./mtr -mem -par=auto
|
I also attach a sample output. 91 warnings total. sample_tsan_output
Reminder to self: