<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:07:49 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-45077] Add a new &#8220;term&#8221; field to the config document</title>
                <link>https://jira.mongodb.org/browse/SERVER-45077</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="1049545">SERVER-45077</key>
            <summary>Add a new &#8220;term&#8221; field to the config document</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="william.schultz@mongodb.com">William Schultz</assignee>
                                    <reporter username="siyuan.zhou@mongodb.com">Siyuan Zhou</reporter>
                        <labels>
                            <label>safe-reconfig-consensus</label>
                    </labels>
                <created>Thu, 12 Dec 2019 05:23:29 +0000</created>
                <updated>Sun, 29 Oct 2023 22:14:11 +0000</updated>
                            <resolved>Wed, 8 Jan 2020 02:37:06 +0000</resolved>
                                                    <fixVersion>4.3.3</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2711000" author="xgen-internal-githook" created="Tue, 7 Jan 2020 23:16:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;username&apos;: &apos;will62794&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45077&quot; title=&quot;Add a new &#8220;term&#8221; field to the config document&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45077&quot;&gt;&lt;del&gt;SERVER-45077&lt;/del&gt;&lt;/a&gt; Add a &quot;term&quot; field to ReplSetConfig&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1a4fb8445254a73adabad98eafbb5a8fc0e2ae05&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1a4fb8445254a73adabad98eafbb5a8fc0e2ae05&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2653673" author="siyuan.zhou@10gen.com" created="Thu, 19 Dec 2019 22:32:06 +0000"  >&lt;blockquote&gt;&lt;p&gt;To fix this, 4.4 nodes in FCV=4.2 could omit the &apos;term&apos; field in the configs they send in heartbeat responses.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;FCV upgrade only needs to commit on a majority nodes, so even if&#160;FCV=4.4, there might still be nodes with FCV 4.2.&#160; Maybe that&apos;s fine since at that moment, binVersion 4.2 nodes will fassert on learning FCV 4.4, so we could make 4.4 node with FCV 4.2 compatible with config terms.&lt;/p&gt;</comment>
                            <comment id="2653608" author="william.schultz" created="Thu, 19 Dec 2019 21:53:39 +0000"  >&lt;p&gt;To solve the downgrade issue before &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45092&quot; title=&quot;Remove &#8220;term&#8221; field of config document on downgrade&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45092&quot;&gt;&lt;del&gt;SERVER-45092&lt;/del&gt;&lt;/a&gt; is done, we could add a temporary failpoint that causes the server to always omit the term in configs. We could enable this failpoint in the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ca406e36dac858112259acace5859a304ae0de/jstests/multiVersion/genericSetFCVUsage/downgrade_replset.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;few tests&lt;/a&gt; that exercise downgrade. Then, once &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45092&quot; title=&quot;Remove &#8220;term&#8221; field of config document on downgrade&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45092&quot;&gt;&lt;del&gt;SERVER-45092&lt;/del&gt;&lt;/a&gt; is done, we would remove this failpoint and let the tests run normally again.&lt;/p&gt;</comment>
                            <comment id="2653472" author="william.schultz" created="Thu, 19 Dec 2019 20:45:45 +0000"  >&lt;p&gt;While testing these initial changes I ran into a multiversion issue where 4.2 nodes reject configs with a &apos;term&apos; field in them because they &lt;a href=&quot;https://github.com/mongodb/mongo/blob/aff2e09e657691ba4764c8a6cfb4630c364abdb0/src/mongo/db/repl/repl_set_config.cpp#L111&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;parse config objects strictly&lt;/a&gt;. The set of allowed top-level fields is explicitly defined &lt;a href=&quot;https://github.com/mongodb/mongo/blob/aff2e09e657691ba4764c8a6cfb4630c364abdb0/src/mongo/db/repl/repl_set_config.cpp#L74-L80&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. We will fail to install a config sent to us in a heartbeat response when we attempt to parse it &lt;a href=&quot;https://github.com/mongodb/mongo/blob/aff2e09e657691ba4764c8a6cfb4630c364abdb0/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp#L162&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. Note that this strict parsing behavior also causes problems for downgrade, but we already have plans to explicitly deal with that issue (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45092&quot; title=&quot;Remove &#8220;term&#8221; field of config document on downgrade&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45092&quot;&gt;&lt;del&gt;SERVER-45092&lt;/del&gt;&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;To fix this, 4.4 nodes in FCV=4.2 could omit the &apos;term&apos; field in the configs they send in heartbeat responses. That way a binVersion=4.2 node could receive configs via heartbeats from a 4.4 node safely. Alternatively, we could consider increasing the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b21647a5e19e5980186e57f77be0b1e0ef92a087/src/mongo/db/repl/repl_set_heartbeat_args_v1.h#L146&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_heartbeatVersion&lt;/a&gt; field in 4.4 and having 4.4 nodes omit the config &apos;term&apos; field in their heartbeat responses if the heartbeat request is from a lower heartbeat version. This seems more invasive, though, and feels more or less equivalent to the FCV based solution. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1049563">SERVER-45089</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1049567">SERVER-45092</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1079923">SERVER-45408</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_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 Dec 2019 21:42:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 5 weeks, 1 day 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not 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>
                            4 years, 5 weeks, 1 day ago
                        </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>
            <customfieldvalue>william.schultz@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwabvr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvyjhz:</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="3438">Repl 2019-12-30</customfieldvalue>
    <customfieldvalue id="3439">Repl 2020-01-13</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|hw9y53:</customfieldvalue>

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