[SERVER-79333] [Storage Execution NAMER] Audit v7.0 feature flag Created: 25/Jul/23 Updated: 16/Nov/23 Resolved: 16/Nov/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Randolph Tan | Assignee: | Benety Goh |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | former-storex-namer | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Assigned Teams: |
Storage Execution
|
||||||||||||||||||||||||
| Sprint: | Execution Team 2023-11-27 | ||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Description |
|
Intial sync can temporarily reset the fcv value to uninitialized and sets the new value afterwards. This can cause call sites trying to inspect the fcv value to hit this invariant. We need to audit feature flag usage and determine if the feature flag check can be run during initial sync: If it can never be called when initial sync is running, do nothing. Note that this can be tricky to prove as we once thought the catalog cache loader can never be run while initial sync is happening but it can. If it might get run during initial sync, this could be the case if the feature is run during initial sync itself, if the feature is in a background thread that runs during initial sync, or if the feature is run in a command that is allowed during initial sync, such as hello, serverStatus, etc. In this case, use one of these options:
See this section of the README gFeatureFlagInternalWritesAreReplicatedTransactionally |
| Comments |
| Comment by Benety Goh [ 16/Nov/23 ] |
|
The featureFlagInternalWritesAreReplicatedTransactionally affects oplog entry generation on a primary and is not accessed during initial sync. The only reference to this feature flag on 7.0 is in OpObserverImpl::onBatchedWriteComplete() where it is checked using FeatureFlag::isEnabled(). Per guidance laid out in the README, it should be fine to continue using isEnabled. |
| Comment by Connie Chen [ 01/Aug/23 ] |
|
Moved gFeatureFlagBucketUnpackWithSort, gFeatureFlagShardedTimeSeries, gFeatureFlagColumnstoreIndexes to the Query as these were created by the Query teams (see |