<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:40:42 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-79330] Audit featureFlag usage in v7.0 branch in mongod binary</title>
                <link>https://jira.mongodb.org/browse/SERVER-79330</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Intial sync can &lt;a href=&quot;https://github.com/10gen/mongo/blob/d13faac6def5a42bad3e1ac6d91d9d5ce805f0d2/src/mongo/db/repl/initial_syncer.cpp#L696&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;temporarily reset&lt;/a&gt; the fcv value to uninitialized and sets the new value afterwards. This can cause call sites trying to inspect the fcv value to hit &lt;a href=&quot;https://github.com/10gen/mongo/blob/07efe95e998e3f8305c4ec215761e0ec7b9e8012/src/mongo/db/server_options.h#L147&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this invariant&lt;/a&gt;. We need to audit feature flag usage and determine if the feature flag check can be run during initial sync:&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Use isEnabledUseLastLTSFCVWhenUninitialized. It checks against the last LTS FCV version if the FCV version is unset, but note that this could result in the feature not being turned on even though the FCV will be set to latest once initial sync is complete.&lt;/li&gt;
	&lt;li&gt;Use isEnabledUseLatestFCVWhenUninitialized. This instead checks against the latest FCV version if the FCV version is unset, but note that this could result in the feature being turned on even though the FCV has not been upgraded yet and will be set to lastLTS once initial sync is complete.&lt;/li&gt;
	&lt;li&gt;Write your own special logic to avoid the invariant (for example, waiting for the FCV to become initialized before checking isEnabled, or uasserting instead of invariant-ing)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;See this section of the &lt;a href=&quot;https://github.com/10gen/mongo/blob/33968bda5de2b10009f51339ba3e20eba01e7675/src/mongo/db/repl/FCV_AND_FEATURE_FLAG_README.md#feature-flag-gating-during-initial-sync&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;README&lt;/a&gt; &lt;/p&gt;


&lt;p&gt;List of feature flags from &quot;git grep -ni featureflag src/ | grep &quot;isEnabled(&quot; | grep -v _test&quot;&lt;/p&gt;

&lt;p&gt;gFeatureFlagBucketUnpackWithSort&lt;br/&gt;
gFeatureFlagBulkWriteCommand&lt;br/&gt;
gfeatureFlagCappedCollectionsRelaxedSize&lt;br/&gt;
gFeatureFlagCatalogShard&lt;br/&gt;
gFeatureFlagChangeStreamsFurtherEnrichedEvents&lt;br/&gt;
gFeatureFlagColumnstoreIndexes&lt;br/&gt;
gFeatureFlagCommonQueryFramework&lt;br/&gt;
gFeatureFlagCompoundWildcardIndexes&lt;br/&gt;
gFeatureFlagConfigurableX509ClusterAuthn&lt;br/&gt;
gFeatureFlagAuditConfigClusterParameter&lt;br/&gt;
gFeatureFlagFLE2CompactForProtocolV2&lt;br/&gt;
gFeatureFlagFLE2Range&lt;br/&gt;
gFeatureFlagGlobalIndexes&lt;br/&gt;
gFeatureFlagHealthMonitoring&lt;br/&gt;
gFeatureFlagInternalWritesAreReplicatedTransactionally&lt;br/&gt;
gFeatureFlagServerlessChangeStreams&lt;br/&gt;
gFeatureFlagTelemetry&lt;br/&gt;
gFeatureFlagRequireTenantID&lt;br/&gt;
gFeatureFlagResharding&lt;br/&gt;
gFeatureFlagShardedTimeSeries&lt;br/&gt;
gFeatureFlagUpdateDocumentShardKeyUsingTransactionApi&lt;br/&gt;
gFeatureFlagUpdateOneWithoutShardKey&lt;br/&gt;
gFeatureFlagUserRoles&lt;br/&gt;
gGlobalIndexesShardingCatalog&lt;/p&gt;</description>
                <environment></environment>
        <key id="2400570">SERVER-79330</key>
            <summary>Audit featureFlag usage in v7.0 branch in mongod binary</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="backlog-server-cluster-scalability">Backlog - Cluster Scalability</assignee>
                                    <reporter username="randolph@mongodb.com">Randolph Tan</reporter>
                        <labels>
                    </labels>
                <created>Tue, 25 Jul 2023 19:10:14 +0000</created>
                <updated>Tue, 12 Dec 2023 15:53:05 +0000</updated>
                                                                                                <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                                                                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2400596">SERVER-79333</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2406547">SERVER-79590</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2470844">SERVER-82044</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2437587">SERVER-80902</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2400400">SERVER-79317</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                            <subtask id="2415782">SERVER-79939</subtask>
                            <subtask id="2415784">SERVER-79940</subtask>
                            <subtask id="2415787">SERVER-79941</subtask>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="26583"><![CDATA[Cluster Scalability]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        28 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-79590'>SERVER-79590</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-79333'>SERVER-79333</a></s>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>dbeng-pm-bot</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            28 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-cluster-scalability</customfieldvalue>
            <customfieldvalue>randolph@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2jetj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i21j4g:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2j0yv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>