Both gcc and clang provide memory and thread sanitizers, see
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html
https://clang.llvm.org/docs/MemorySanitizer.html
https://clang.llvm.org/docs/ThreadSanitizer.html
This adds configure options --enable-msan and --enable-tsan for memory
and thread sanitizer respectively. These options can't be used together (only one sanitizer at a time: ASAN, MSAN or TSAN).
With TSAN nunc-stans tests fail (during make check) with potential deadlock warning; setup-ds.pl fails to create an instance because of data race warnings and potential deadlocks in nunc-stans.
With MSAN server fails to start and instance can't be created. But that's possibly due to many false positives that come from non-instrumented libraries (nss and nspr in particular).
Both gcc and clang provide memory and thread sanitizers, see
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html
https://clang.llvm.org/docs/MemorySanitizer.html
https://clang.llvm.org/docs/ThreadSanitizer.html
This adds configure options --enable-msan and --enable-tsan for memory
and thread sanitizer respectively. These options can't be used together (only one sanitizer at a time: ASAN, MSAN or TSAN).
With TSAN nunc-stans tests fail (during make check) with potential deadlock warning; setup-ds.pl fails to create an instance because of data race warnings and potential deadlocks in nunc-stans.
With MSAN server fails to start and instance can't be created. But that's possibly due to many false positives that come from non-instrumented libraries (nss and nspr in particular).
https://pagure.io/389-ds-base/issue/49608