Uploaded image for project: 'C Driver'
  1. C Driver
  2. CDRIVER-3317

Replace valgrind variant with Memory Sanitizer

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Minor - P4 Minor - P4
    • 1.24.0
    • Affects Version/s: None
    • Component/s: libmongoc, Testing
    • None

      The current valgrind variant is sometimes timing out (e.g. taking over 2 hours). That seems wrong. If that truly is how long it takes, then we should consider if it's worth the evergreen time, or if we can speed it up somehow.

      ASAN covers everything valgrind checks for aside from uninitialized reads, which MSAN covers (according to this table: https://github.com/google/sanitizers/wiki/AddressSanitizerComparisonOfMemoryTools). And the Valgrind task has caught uninitialized reads before, e.g. this patch. But adding MSAN should warrant removing our Valgrind variant (which currently only runs once a week).

      The biggest hurdle with MSAN seems to be that all dependent libraries (aside from libc) need to be recompiled with MSAN enabled (according to https://clang.llvm.org/docs/MemorySanitizer.html#handling-external-code). Sure enough, some initial testing verifies that OpenSSL triggers lots of false positives.

            Assignee:
            ezra.chung@mongodb.com Ezra Chung
            Reporter:
            kevin.albertson@mongodb.com Kevin Albertson
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: