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

Add a test that diffs IDL files for commands across versions

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Replication
    • 112

      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.

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            vishnu.kaushik@mongodb.com Vishnu Kaushik
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: