-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Component/s: Evergreen Tools
-
None
-
Needed - No Spec Changes
Summary
The mongod and mongos binaries are making a change so that certain feature flags which are eligible for Incremental Feature Rollout will default to false
when the binaries are launched. Before this project, they defaulted to true. To preserve the same kind of test coverage (which we think is desirable), drivers should pass '--enableUnreleasedRolloutFlags' startup option to all mongod and mongos binaries in the test fixture. This will ensure tests cover the desired end state of the upcoming release: all features enabled. If there are issues with that, we want to hear about them early.
Motivation
Who is the affected end user?
All MongoDB users in a sense, but mostly those in the 'rapid release' fleet which get features the fastest. This is a ticket about ensuring test coverage to have better release safety.
The change is motivated by making it safer for us to avoid accidentally releasing flags which we intended to release more methodically.
How does this affect the end user?
Without doing this, the risk profile for the rapid release customers will grow.
How likely is it that this problem or use case will occur?
This should be low probability. Our feature flags should have minimal noticeable impact if toggled off/on if done right. It should be pretty rare that a feature flag toggle will cause a problem for drivers. But it's not impossible.
If the problem does occur, what are the consequences and how severe are they?
If a problem gets through to release without being tested, it can result in customer outages and possible release rollback. An expensive event for the company.
Is this issue urgent?
We are making this change for the 9.1 release cycle. We would like this to be done before then to ensure our test coverage matches how that release will go out. That said, the feature flags targeting 9.1 all have to do with how we build query plans internally for certain kinds of queries and whether they will use SBE. I don't anticipate these particular flags will cause drivers problems. So there is not a ton of real urgency, we just want to fix this so that we don't have to remember this outstanding risk the next time we select feature flags (or if another server project that might be riskier decides to use IFR flags to protect their feature for 9.1)
Is this ticket required by a downstream team?
No
Is this ticket only for tests?
Yes
Acceptance Criteria
The drivers test suite should have all mongods and mongos processes launched with '–enableUnreleasedRolloutFlags.' It will be hard to prove, but the impact we want is that a feature flag which breaks a drivers test will cause drivers tests to start failing if that feature flag is in 'rollout' state on the server (defaulting to off but intended to be set to true via Atlas configuration).
- depends on
-
SERVER-138400 Change the default for an IFR flag to false
-
- Open
-
-
SERVER-138500 Add --enableUnreleasedRolloutFlags and deprecate --disableUnreleasedIFRFlags
-
- Open
-