Closed ericniebler closed 9 months ago
@BenFrantzDale, do you think you could take a look at this?
Is tbb compiled with tsan enabled? If not then thats the reason.
TBB has TSAN support. You should use -DTBB_SANITIZE=thread during build to enable it.
Like this?
[build] [114/115 95% :: 15.569] /usr/bin/g++-13 -DSTDEXEC_ENABLE_EXTRA_TYPE_CHECKING \
-DTBB_USE_DEBUG -I/home/eniebler/Code/stdexec/test -I/home/eniebler/Code/stdexec/include \
-I"/home/eniebler/Code/stdexec/build/GCC 13.1 x86_64-linux-gnu/Debug/_deps/catch2-src/single_include" \
-fsanitize=thread -ftemplate-backtrace-limit=0 -DTBB_SANITIZE=thread -g -std=c++20 \
-fcoroutines -fconcepts-diagnostics-depth=10 -Wall -Wno-non-template-friend -MD \
-MT test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o
-MF test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o.d \
-o test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o \
-c /home/eniebler/Code/stdexec/test/tbbexec/test_tbb_thread_pool.cpp
Still fails for me. :thinking:
Like this?
[build] [114/115 95% :: 15.569] /usr/bin/g++-13 -DSTDEXEC_ENABLE_EXTRA_TYPE_CHECKING \ -DTBB_USE_DEBUG -I/home/eniebler/Code/stdexec/test -I/home/eniebler/Code/stdexec/include \ -I"/home/eniebler/Code/stdexec/build/GCC 13.1 x86_64-linux-gnu/Debug/_deps/catch2-src/single_include" \ -fsanitize=thread -ftemplate-backtrace-limit=0 -DTBB_SANITIZE=thread -g -std=c++20 \ -fcoroutines -fconcepts-diagnostics-depth=10 -Wall -Wno-non-template-friend -MD \ -MT test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o -MF test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o.d \ -o test/CMakeFiles/test.stdexec.dir/tbbexec/test_tbb_thread_pool.cpp.o \ -c /home/eniebler/Code/stdexec/test/tbbexec/test_tbb_thread_pool.cpp
Still fails for me. :thinking:
No, you need to use a compiled tbb library that has tsan enabled. Instead of installing some tbb shared library from aptitude you need to compile and link tbb itself. Afaik, same goes for asan.
Bah. Too much trouble. I will assume that this is user error and close.
The
tbb_thread_pool exceptions
test is failing with a TSAN error. gcc 13.1, Debug,-fsanitize=thread
.