-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Replication
-
112
Currently it's possible for developers to introduce / remove parameters across binary versions in a way that means behavior will diverge across binary versions, even if the nodes have the same FCV. We should add guardrails to prevent developers from doing this.
As a concrete example, recordPreImages is an option that is available in createCollection / collMod in 6.0 binaries. It was removed in SERVER-60919 and doesn't exist on 7.0 binaries.
However this was implemented in a way so that a primary with FCV 6.0 and binary 6.0 accepts this command:
db.runCommand({createCollection: "coll", recordPreImages: true})
A primary with FCV 6.0 but binary 7.0 will error on the same command, meaning it diverges from the 6.0 binary.
There are some more edge cases with undefined behavior that can occur in mixed version replica sets. See the linked BF.
- is related to
-
SERVER-85459 [v7.0] bucketRoundingSeconds param is accepted by nodes on fCV 6.0, binary 7.0
- Closed
- related to
-
SERVER-85797 Add a test that diffs IDL files for commands across versions
- Open