<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:30:48 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-32630] Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created</title>
                <link>https://jira.mongodb.org/browse/SERVER-32630</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Presently, there are places in the server code that read the featureCompatibilityVersion parameter before it is explicitly initialized with a meaningful value either from &lt;a href=&quot;https://github.com/mongodb/mongo/blob/8cb7435be3529fb4f982ec53373db5ecd9ad4efb/src/mongo/db/db.cpp#L526-L554&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;reading the featureCompatibilityVersion document&lt;/a&gt; or &lt;a href=&quot;https://github.com/mongodb/mongo/blob/8cb7435be3529fb4f982ec53373db5ecd9ad4efb/src/mongo/db/commands/feature_compatibility_version.cpp#L232-L234&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;creating a new featureCompatibilityVersion document&lt;/a&gt; on clean startup. These reads should be minimized if not eliminated. A proposal to minimize these reads follows:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Continue to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/27ccd4a3bf1150a1bf4356de8a91e4dff64e0762/src/mongo/db/server_options.h#L220&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;default&lt;/a&gt; the featureCompatibilityVersion parameter to the &quot;unset&quot; value.&lt;/li&gt;
	&lt;li&gt;Assert that the featureCompatibilityVersion parameter is not &quot;unset&quot; in the default getter function (&lt;tt&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/27ccd4a3bf1150a1bf4356de8a91e4dff64e0762/src/mongo/db/server_options.h#L196-L203&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;getVersion&lt;/a&gt;&lt;/tt&gt;).&lt;/li&gt;
	&lt;li&gt;For existing reads of the featureCompatibilityVersion parameter, find all reads that occur prior to the document being read. Most if not all of these should be 3.4 to 3.6 specific and thus get removed. If any such reads remain after removal of 3.4 to 3.6-specific behavior, and they must be kept, handle them with a special unsafe getter function that treats the &quot;unset&quot; value as last-stable.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="481135">SERVER-32630</key>
            <summary>Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created</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="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="maria.vankeulen@mongodb.com">Maria van Keulen</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Jan 2018 18:02:56 +0000</created>
                <updated>Mon, 30 Oct 2023 23:09:26 +0000</updated>
                            <resolved>Fri, 9 Mar 2018 20:13:44 +0000</resolved>
                                                    <fixVersion>3.7.3</fixVersion>
                                    <component>Upgrade/Downgrade</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2127711" author="xgen-internal-githook" created="Fri, 25 Jan 2019 16:59:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;adamlsd&apos;, &apos;email&apos;: &apos;adam.martin@10gen.com&apos;, &apos;name&apos;: &apos;ADAM David Alan Martin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39000&quot; title=&quot;Unittest framework incorrectly handles initialization of serverCompatibilityVersion&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39000&quot;&gt;&lt;del&gt;SERVER-39000&lt;/del&gt;&lt;/a&gt; Fix Unittest Framework initialization.&lt;/p&gt;

&lt;p&gt;Some tests in `dbtest` do not use the `mongo::unittest::Test` class&lt;br/&gt;
as a basis for their implementation and thus need some way to benefit&lt;br/&gt;
from global DB Environment initialization functions.  Specifically&lt;br/&gt;
the changes in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32630&quot; title=&quot;Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32630&quot;&gt;&lt;del&gt;SERVER-32630&lt;/del&gt;&lt;/a&gt; required `serverCompatibilityVersion`&lt;br/&gt;
to be set sensibly.  Some tests in `dbtest` were not correctly&lt;br/&gt;
getting this benefit; instead only incidentally getting a correct&lt;br/&gt;
setting by accident, as the results of an unintended residue of&lt;br/&gt;
an earlier operation.  This can lead to inconsistentcies in which&lt;br/&gt;
tests pass, as link order changes &amp;#8211; the tests are registered using&lt;br/&gt;
static initialization, whose instability of order can cause&lt;br/&gt;
mysterious failures in `dbtest`.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/677a65ba43fecf7cf20b7a2c34b5ec2bed413edd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/677a65ba43fecf7cf20b7a2c34b5ec2bed413edd&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2117410" author="xgen-internal-githook" created="Wed, 16 Jan 2019 19:29:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;adamlsd&apos;, &apos;email&apos;: &apos;adam.martin@10gen.com&apos;, &apos;name&apos;: &apos;ADAM David Alan Martin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39000&quot; title=&quot;Unittest framework incorrectly handles initialization of serverCompatibilityVersion&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39000&quot;&gt;&lt;del&gt;SERVER-39000&lt;/del&gt;&lt;/a&gt; Fix Unittest Framework initialization.&lt;/p&gt;

&lt;p&gt;Some tests in `dbtest` do not use the `mongo::unittest::Test` class&lt;br/&gt;
as a basis for their implementation and thus need some way to benefit&lt;br/&gt;
from global DB Environment initialization functions.  Specifically&lt;br/&gt;
the changes in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32630&quot; title=&quot;Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32630&quot;&gt;&lt;del&gt;SERVER-32630&lt;/del&gt;&lt;/a&gt; required `serverCompatibilityVersion`&lt;br/&gt;
to be set sensibly.  Some tests in `dbtest` were not correctly&lt;br/&gt;
getting this benefit; instead only incidentally getting a correct&lt;br/&gt;
setting by accident, as the results of an unintended residue of&lt;br/&gt;
an earlier operation.  This can lead to inconsistentcies in which&lt;br/&gt;
tests pass, as link order changes &amp;#8211; the tests are registered using&lt;br/&gt;
static initialization, whose instability of order can cause&lt;br/&gt;
mysterious failures in `dbtest`.&lt;br/&gt;
Branch: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29286&quot; title=&quot;Upgrade MozJS to esr 60&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29286&quot;&gt;&lt;del&gt;SERVER-29286&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9aa2832dae9477784d4a347b3f0c9de3a357e863&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9aa2832dae9477784d4a347b3f0c9de3a357e863&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1829293" author="xgen-internal-githook" created="Fri, 9 Mar 2018 20:09:43 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;maria@mongodb.com&apos;, &apos;name&apos;: &apos;Maria van Keulen&apos;, &apos;username&apos;: &apos;mvankeulen94&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32630&quot; title=&quot;Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32630&quot;&gt;&lt;del&gt;SERVER-32630&lt;/del&gt;&lt;/a&gt; Ensure the fCV parameter is initialized before reading&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/a4d29b292f1bc42ae8133b0a0984c2b012c43528&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a4d29b292f1bc42ae8133b0a0984c2b012c43528&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1817264" author="maria.vankeulen" created="Tue, 27 Feb 2018 16:07:04 +0000"  >&lt;p&gt;To ensure arbiters don&apos;t trip the &quot;unset&quot; assertion, they should initialize their fCV parameter at the point in startup when they find out they are arbiters. To avoid bugs such as &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32639&quot; title=&quot;Arbiters in standalone replica sets can&amp;#39;t sign or validate clusterTime with auth on once FCV checks are removed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32639&quot;&gt;&lt;del&gt;SERVER-32639&lt;/del&gt;&lt;/a&gt; in the future, arbiters should initialize the fCV to whatever the &quot;latest&quot; fCV is, in this case, 4.0.&lt;/p&gt;</comment>
                            <comment id="1804516" author="tess.avitabile" created="Tue, 13 Feb 2018 17:51:11 +0000"  >&lt;p&gt;Please recall while doing this work that arbiters will never read the FCV document.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="510508">DOCS-11443</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1344684">SERVER-48044</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 13 Feb 2018 17:51:11 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 2 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-936</customfieldvalue>
                        </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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 2 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>maria.vankeulen@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htnpu7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr9kin:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2202">Storage NYC 2018-03-12</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</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|htnbyn:</customfieldvalue>

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