#49609 Add memory and thread sanitizers
Closed by spichugi. Opened by vashirov.
vashirov/389-ds-base add-sanitizers  into  master

Download 49609.patch

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

This looks great! Ack from me :) Can't wait to fix up some of the TSAN issues :)

rebased onto 819c4bcb247d7b92dd1d40f09fac393ea4c052cd

@firstyear, thanks! I've added support for undefined behaviour sanitizer as well, please check the updated commit.

ubsan looks good too, another ack from me.

rebased onto 5ba01818f4cec97dd99682a0be02c98615110d17

Pull-Request has been merged by vashirov

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/2668

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

Metadata