Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-8958

Improvements to ARM and other stress tests on evergreen

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • 5
    • Storage - Ra 2022-03-21, Storage - Ra 2022-04-04

      Summary
      Improve the stress tests on evergreen to be closer to how MongoDB compiles them and to uncover more races.

      Motivation
      Recently WT-8913 added stress test on ARM. This was influenced by MongoDB's internal testing on ARM hitting a corruption bug that we want to catch sooner with the WiredTiger testing. There are a few changes that we could make to the ARM and other stress tests that will make stress testing more effective:

      • The stress test variants (x86 and ARM) pass posix_configure_flags but the underlying tasks very likely ignore them and build their own version of WiredTiger. This causes confusion and could mislead us into making a change to the posix flags expecting a change to the build. Find a solution that the flags are not ignored, or remove them altogether so that we are not misled.
      • ARM compilation for stress testing should pass the flags, -moutline-atomics and -DHAVE_ARM_NEON_INTRIN_H. This is to be closer to how MongoDB builds WiredTiger on ARM
      • The diagnostic builds enables diagnostic yields. This causes an additional full memory barrier to be introduced in the code each time a yield happens. This reduces the chances to find memory synchronization bugs. A set of stress tasks can be made introduced to both x86 and ARM variants that would have diagnostic yields a null op. Some brainstorming will be needed to figure out the best means to do this (could be a run time diagnostic configuration like our flags to encourage split races, or it could be a compile time flag like HAVE_DIAGNOSTIC).

      For more details look at this comment.

      • Does this affect any team outside of WT?
        No
      • Is this issue urgent?
        Yes. We want to make these changes soonish to uncover any potential bugs or fallouts from ARM platform related changes to atomic functions.

            Assignee:
            andrew.morton@mongodb.com Andrew Morton
            Reporter:
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: