| 1. Generate ninja config to build with tsan:
python ./buildscripts/scons.py --modules= --dbg=on --opt=on --use-libunwind=off --variables-files=./etc/scons/mongodbtoolchain_stable_clang.vars --ninja generate-ninja --sanitize=thread --allocator=system NINJA_PREFIX=tsan VARIANT_DIR=tsan-debug
|
2. Build unit tests:
ninja -f tsan.ninja -j 16 +db_s_config_server_test
|
3. Configure tsan options:
export TSAN_OPTIONS="halt_on_error=1:report_thread_leaks=0:die_after_fork=0:suppressions=etc/tsan.suppressions:external_symbolizer_path=/opt/mongodbtoolchain/v3/bin/llvm-symbolizer"
|
4. Run test on a single cpu to increase failure odds:
numactl --physcpubind=0 ./build/tsan-debug/install/bin/db_s_config_server_test --filter ReshardingCoordinatorSuccessfullyTransitionsTokDone --repeat 1000
|
|