Investigate parallel tests execution with sanitizers

XMLWordPrintableJSON

    • Type: Build Failure
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Test Python
    • None
    • Storage Engines - Foundations
    • None
    • 3

      For some reason, when tests are executed with ASAN by many processes in parallel, many warnings get hidden. I tried to even replace the current multiprocessing test implementation with something simpler, but it didn't fix the issue. It seems like the issue could be in the ASAN design, however, since the reason is still unclear, it still requires additional investigation.

      It also worth investigation whether other sanitisers could hide issues when executed in parallel too. I tried to do some simple examples and it seems like they work normal, but I am not 100% sure, because the correct approach would be to intentionally introduce errors in different parts of the code and verify whether CI consistently reports them.

      I’m also not certain whether all other testing types detect all warnings. As far as I see, format.sh always creates a background job to run tests, which could also be problematic.

      Update:
      There is a github sanitisers issue describing the same case and it says that it only affects ASAN. However, it might require more of a thought to check whether other sanitisers/cases could be affected. https://github.com/google/sanitizers/issues/836

      Another question is that this issue caused a sanitisers code change that produces an error with a clear message if ASAN process was forked. It's worth checking why we don't see this error in our tests executed in parallel.

       

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Ivan Kochin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: