-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Replication
-
Fully Compatible
-
ALL
-
v7.2, v7.0, v6.0, v5.0, v4.4
-
Repl 2023-09-04, Repl 2023-10-30, Repl 2023-11-13
-
153
For places in the codebase where we check the FCV in multiple places, this can be racy. For example, in FeatureFlag::isEnabled,
it performs a check here if fcv is initialized and tries to perform comparison later. However, it is possible for fcv to be reset in between causing the comparison to be perfomed while fcv is not initialized.
And example case where fcv can be uninitialized is when intial sync temporarily resets the value to uninitialized and sets the new value afterwards.
This also applies to FCVServerStatusMetrics::generateSection and other instances where we check if FCV is initialized and then another FCV check that re-gets the FCV.
- is duplicated by
-
SERVER-82044 Add a method for checking if a feature flag is enabled without ignoring FCV that handles the case where FCV has not been initialized
- Closed
-
SERVER-82087 FCVServerStatusMetrics::generateSection is racy
- Closed
- is related to
-
SERVER-82087 FCVServerStatusMetrics::generateSection is racy
- Closed
-
SERVER-70202 Investigate calling serverGlobalParams.featureCompatibility.isVersionInitialized() in isEnabled()
- Closed
- related to
-
SERVER-79317 Provide more documentation and helper functions for case where feature flag checks could be run when fCV is uninitialized during initial sync
- Closed
-
SERVER-80901 Audit gFeatureFlagServerlessChangeStreams
- Closed