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

Replace valgrind variant with Memory Sanitizer

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Minor - P4 Minor - P4
    • 1.24.0
    • None
    • libmongoc, tests
    • None

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: