[SERVER-85797] Add a test that diffs IDL files for commands across versions Created: 26/Jan/24  Updated: 29/Jan/24

Status: Open
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Vishnu Kaushik Assignee: Backlog - Replication Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-85459 bucketRoundingSeconds param is accept... Open
is related to SERVER-82119 Add guardrails to prevent incompatibi... Open
Assigned Teams:
Replication
Participants:
Linked BF Score: 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.


Generated at Thu Feb 08 06:58:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.