Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-85797

Add a test that diffs IDL files for commands across versions

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Replication
    • 112

    Description

      We've seen a few bugs (example SERVER-85459, SERVER-82201) that show up in mixed binary replica sets where a feature isn't being checked with an FCV properly. As a result, scenarios where some nodes accept a command while others don't can occur. For example, the primary on a higher binary version (but low FCV) may incorrectly accept a command with a param that exists only on higher binary versions. As secondaries don't know how to handle the param during replication, they crash.

      So far the fuzzer has been catching these, like the two tickets listed above. But what would be a quick (rather than eventual), deterministic way to catch these would be to have a test that:

      1. Computes the diff between IDL files across versions, say between 6.0 and 7.0.
      2. If there is a difference, issues commands with the difference included and excluded to a mixed version replica set. This step would have caught the two bugs listed above.
      3. Repeats for every IDL file that defines a command.

      Attachments

        Activity

          People

            backlog-server-repl Backlog - Replication Team
            vishnu.kaushik@mongodb.com Vishnu Kaushik
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: