pika icon indicating copy to clipboard operation
pika copied to clipboard

Enable sanitizers in CI

Open msimberg opened this issue 3 years ago • 1 comments

This is potentially very important for debugging. We currently only test with lsan (leak sanitizer). We should try to add tsan (thread sanitizer), msan (memory sanitizer), asan (address sanitizer), and ubsan (undefined behaviour sanitizers). Enabling them with heavy suppression files would be a good start, just to allow consumers of pika to enable sanitizers.

  • [x] lsan
  • [x] tsan
  • [x] asan
  • [x] ubsan

msan

This would require recompiling all dependencies with -fsanitize=memory, including the standard library: https://github.com/google/sanitizers/wiki/MemorySanitizer#using-instrumented-libraries. This is something to consider doing with the CSCS CI pipelines and spack.

msimberg avatar Jan 21 '22 14:01 msimberg

With #1042 all tests and examples, except for an explicit set of blacklisted tests, run through asan, lsan, ubsan, and tsan on merges. msan is still not used at all.

msimberg avatar Feb 26 '24 08:02 msimberg

Closing in favour of a more specific issue #1124.

msimberg avatar May 10 '24 15:05 msimberg