Enable MSan builds for WiredTiger tests

    • Type: New Feature
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • None
    • Storage Engines
    • None
    • None

      Currently MSan builds can run for limited number of tests only. Anything that uses externally build code (e.g., C++ tests) cannot run with MSan.

      The reason is that MSan requires everything to be instrumented to get meaningful diagnostics:

      MemorySanitizer requires that all program code is instrumented. This also includes any libraries that the program depends on, even libc. Failing to achieve this may result in false reports. For the same reason you may need to replace all inline assembly code that writes to memory with a pure C/C++ code.

      Full MemorySanitizer instrumentation is very difficult to achieve. To make it easier, MemorySanitizer runtime library includes 70+ interceptors for the most common libc functions. They make it possible to run MemorySanitizer-instrumented programs linked with uninstrumented libc.

      It means that a typical C++ project requires instrumented build of libstdc++ / libc++ and the 3rd-party dependencies (if used with the project).

      In order to run current WT C++ tests (test/model, disagg with PALite, etc) with MSan, the following is required:

      • Pre-build variants of libstdc++ / libc++ for each required platform.
      • Make the required binaries available during MSan builds.

      Also, see linked webpages that discuss the topic.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Alex Blekhman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: