<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:12:44 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-46894] Wait for the current config to be committed before running reconfig</title>
                <link>https://jira.mongodb.org/browse/SERVER-46894</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, we wait for both Config Replication and Oplog Commitment at the end of reconfig command. The former guarantees the new oplog cannot be &quot;rolled back&quot;, the latter guarantees the following config can be accepted. However, it seems better to wait for the latter only when it&apos;s needed on receiving the following config.&lt;/p&gt;

&lt;p&gt;As an example, adding one node with votes: 1 to a single node replset will have to wait for the initial sync to finish before returning the reconfig currently.&lt;/p&gt;

&lt;p&gt;Another case is after an election, Oplog Commitment requires the first optime in its term to be committed, which may fail a reconfig following the election immediately. Waiting for the first optime in its term to be committed will make the command finish successfully.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1276061">SERVER-46894</key>
            <summary>Wait for the current config to be committed before running reconfig</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="siyuan.zhou@mongodb.com">Siyuan Zhou</assignee>
                                    <reporter username="siyuan.zhou@mongodb.com">Siyuan Zhou</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Mar 2020 17:01:02 +0000</created>
                <updated>Sun, 29 Oct 2023 22:10:44 +0000</updated>
                            <resolved>Sat, 4 Apr 2020 21:00:53 +0000</resolved>
                                                    <fixVersion>4.4.0-rc0</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3026648" author="xgen-internal-githook" created="Sun, 5 Apr 2020 23:32:45 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Siyuan Zhou&apos;, &apos;email&apos;: &apos;siyuan.zhou@mongodb.com&apos;, &apos;username&apos;: &apos;visualzhou&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46894&quot; title=&quot;Wait for the current config to be committed before running reconfig&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46894&quot;&gt;&lt;del&gt;SERVER-46894&lt;/del&gt;&lt;/a&gt; Wait for the current config to be committed before running reconfig.&lt;/p&gt;

&lt;p&gt;This also changes the behavior of waiting for both Config Replication and&lt;br/&gt;
Oplog Commitment proactively at the end of safe reconfig. Both conditions guarantee&lt;br/&gt;
the safety of the next reconfig. Now we only wait for Config Replication at the&lt;br/&gt;
end of safe reconfig and wait for both condition at the beginning of the&lt;br/&gt;
next reconfig when the waiting is necessary.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 89ec7322a58686b89aa71f26b1f050ded94cf949)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0916dcd9d48917c520553bfab45fcfe5ead85e52&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0916dcd9d48917c520553bfab45fcfe5ead85e52&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3026404" author="xgen-internal-githook" created="Sat, 4 Apr 2020 20:24:18 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Siyuan Zhou&apos;, &apos;email&apos;: &apos;siyuan.zhou@mongodb.com&apos;, &apos;username&apos;: &apos;visualzhou&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46894&quot; title=&quot;Wait for the current config to be committed before running reconfig&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46894&quot;&gt;&lt;del&gt;SERVER-46894&lt;/del&gt;&lt;/a&gt; Wait for the current config to be committed before running reconfig.&lt;/p&gt;

&lt;p&gt;This also changes the behavior of waiting for both Config Replication and&lt;br/&gt;
Oplog Commitment proactively at the end of safe reconfig. Both conditions guarantee&lt;br/&gt;
the safety of the next reconfig. Now we only wait for Config Replication at the&lt;br/&gt;
end of safe reconfig and wait for both condition at the beginning of the&lt;br/&gt;
next reconfig when the waiting is necessary.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/89ec7322a58686b89aa71f26b1f050ded94cf949&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/89ec7322a58686b89aa71f26b1f050ded94cf949&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2988345" author="siyuan.zhou@10gen.com" created="Thu, 19 Mar 2020 21:07:37 +0000"  >&lt;p&gt;If the primary fails to wait for Config Replication or Oplog Commitment for the current config after maxTimeMS, it leaves the current config unchanged and returns a new error code &#8220;CurrentConfigNotCommittedYet&#8221;, with the following example error messages:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;New config is rejected since the current config with {version: 8, term: 3} has not yet propagated to a majority of voting nodes within maxTimeMS: &amp;lt;timeout&amp;gt;.&lt;/li&gt;
	&lt;li&gt;New config is rejected since the last committed optime in the previous config (&amp;lt;OpTime&amp;gt;) has not yet become committed in the current config with {version: 8, term: 3} within maxTimeMS: &amp;lt;timeout&amp;gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If the primary fails to wait for Config Replication of the new config at the end of reconfig, it will return the &#8220;ExceededTimeLimit&#8221; error code with the following message:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Reconfig with {version: 8, term: 3} finished but did not propagate to a majority of voting nodes within maxTimeMS: &amp;lt;timeout&amp;gt;.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2986399" author="siyuan.zhou@10gen.com" created="Thu, 19 Mar 2020 04:53:21 +0000"  >&lt;p&gt;Quote from &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=evin.roesle&quot; class=&quot;user-hover&quot; rel=&quot;evin.roesle&quot;&gt;evin.roesle&lt;/a&gt;: &quot;We would like to show the log message of waiting by default so that users have the ability to understand that it is hung without actually installing the reconfig.&quot; This ticket needs to make sure the log message is shown by default.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1319525">DOCS-13599</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1049559">SERVER-45087</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></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>Mon, 16 Mar 2020 17:16:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 44 weeks, 3 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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Safe reconfig waits for the previous config to be committed before accepting the new config.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1209</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>
                            3 years, 44 weeks, 3 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hx8tcn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwwl47:</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="3766">Repl 2020-03-23</customfieldvalue>
    <customfieldvalue id="3768">Repl 2020-04-06</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16944"><![CDATA[Docs]]></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|hx8flz:</customfieldvalue>

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