-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Fully Compatible
-
ALL
-
Execution Team 2024-02-19
-
112
The bucketRoundingSeconds param for timeseries doesn't exist on FCV 6.0. It is nowhere to be found in the 6.0 docs, and we can see that SERVER-67595, which introduced it, has a fix version of 6.1-rc0.
However, when you run the following command on a mongod with binary version 7.0, but with FCV 6.0, it succeeds:
db.createCollection("mycoll1", { timeseries: { timeField: 'x', bucketRoundingSeconds: 7, bucketMaxSpanSeconds: bucketMaxSpanSecondsTime } });
This is problematic because when we're running a mixed version replica set with 7.0 and 6.0 binaries, if the primary with bin version 7.0 accepts the command, the secondaries with bin version 6.0 won't understand the param during oplog application and will crash.
The purpose of FCV is to help with such cases: all nodes should behave according to their FCV. Therefore, if a node with bin version 7.0 but FCV 6.0 sees this param, it should reject it - in this case, it means the primary should have rejected the command.
- related to
-
SERVER-82119 Add guardrails to prevent incompatibilities between binary versions on the same FCV
- Open
-
SERVER-85797 Add a test that diffs IDL files for commands across versions
- Open