<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:11:36 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-46473] Config replication and oplog commitment checks must only count voting nodes towards majority</title>
                <link>https://jira.mongodb.org/browse/SERVER-46473</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The config replication and oplog commitment safety checks during reconfig currently use the &lt;tt&gt;kConfigMajority&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d1d4d04ef73a89301740b9cbd2e31f1e3b400141/src/mongo/db/repl/replication_coordinator_impl.cpp#L2937-L2947&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;write concern mode&lt;/a&gt; and a numeric write concern with the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d1d4d04ef73a89301740b9cbd2e31f1e3b400141/src/mongo/db/repl/replication_coordinator_impl.cpp#L2958-L2962&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;majority count&lt;/a&gt; of voting nodes. These mechanisms for satisfying write concern do not properly exclude non-voting nodes from the majority count. We should utilize the tag system (e.g. &lt;tt&gt;kInternalVoterTagName&lt;/tt&gt;) to make these majority checks correctly exclude non-voting nodes. Javascript test repros of the bugs are attached.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1198457">SERVER-46473</key>
            <summary>Config replication and oplog commitment checks must only count voting nodes towards majority</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="pavithra.vetriselvan@mongodb.com">Pavithra Vetriselvan</assignee>
                                    <reporter username="william.schultz@mongodb.com">William Schultz</reporter>
                        <labels>
                    </labels>
                <created>Thu, 27 Feb 2020 23:35:37 +0000</created>
                <updated>Sun, 29 Oct 2023 22:11:35 +0000</updated>
                            <resolved>Wed, 4 Mar 2020 18:51:21 +0000</resolved>
                                                    <fixVersion>4.4.0-rc0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2933533" author="xgen-internal-githook" created="Wed, 4 Mar 2020 00:22:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;pvselvan&apos;, &apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46473&quot; title=&quot;Config replication and oplog commitment checks must only count voting nodes towards majority&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46473&quot;&gt;&lt;del&gt;SERVER-46473&lt;/del&gt;&lt;/a&gt; oplog commitment check should only include voting nodes&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46522&quot; title=&quot;Config oplog commitment wait must retrieve optime under replication mutex&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46522&quot;&gt;&lt;del&gt;SERVER-46522&lt;/del&gt;&lt;/a&gt; config oplog commitment should retrieve optime under repl mutex&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/859b127ed3f86a180010be87cb1b9ccf81db9845&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/859b127ed3f86a180010be87cb1b9ccf81db9845&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2932990" author="xgen-internal-githook" created="Tue, 3 Mar 2020 19:32:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;username&apos;: &apos;pvselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46473&quot; title=&quot;Config replication and oplog commitment checks must only count voting nodes towards majority&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46473&quot;&gt;&lt;del&gt;SERVER-46473&lt;/del&gt;&lt;/a&gt; config replication check only counts voting nodes&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6d58b7371e1bec5b4281f25ea797cdb50bf20e62&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6d58b7371e1bec5b4281f25ea797cdb50bf20e62&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2924113" author="siyuan.zhou@10gen.com" created="Mon, 2 Mar 2020 22:43:08 +0000"  >&lt;p&gt;I see. How about use write concern&#160;&lt;tt&gt;kMajorityWriteConcernModeName&lt;/tt&gt;&#160;for&#160;oplog commitment?&lt;/p&gt;</comment>
                            <comment id="2924088" author="pavithra.vetriselvan" created="Mon, 2 Mar 2020 22:31:32 +0000"  >&lt;p&gt;I think config commitment and oplog commitment will need two different tags, separate from kConfigAll, since arbiters can be included for config commitment but should not be counted towards oplog commitment (since they don&apos;t have an oplog). So, I will split this ticket into two commits.&lt;/p&gt;</comment>
                            <comment id="2923565" author="william.schultz" created="Mon, 2 Mar 2020 19:37:49 +0000"  >&lt;p&gt;Oplog commitment safety should also be an issue. Using a numeric write concern with no tag awareness means that we may count writes to non-voting nodes to satisfy a write concern, which isn&apos;t safe.&lt;/p&gt;</comment>
                            <comment id="2923527" author="siyuan.zhou@10gen.com" created="Mon, 2 Mar 2020 19:25:41 +0000"  >&lt;p&gt;The&#160;oplog commitment safety using a numeric write concern should only count non-arbiter voters, which is correct. Only the config replication is problematic. It should count all voters including arbiters. CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=pavithra.vetriselvan&quot; class=&quot;user-hover&quot; rel=&quot;pavithra.vetriselvan&quot;&gt;pavithra.vetriselvan&lt;/a&gt; to confirm.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1049559">SERVER-45087</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1166925">SERVER-46288</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="249416" name="reconfig_non_voters_config_replication.js" size="1451" author="william.schultz@mongodb.com" created="Thu, 27 Feb 2020 23:30:04 +0000"/>
                            <attachment id="249415" name="reconfig_non_voters_oplog_commitment.js" size="1573" author="william.schultz@mongodb.com" created="Thu, 27 Feb 2020 23:35:00 +0000"/>
                            <attachment id="249417" name="topo_coord_unit_test.txt" size="2991" author="william.schultz@mongodb.com" created="Thu, 27 Feb 2020 23:40:59 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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_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, 2 Mar 2020 19:25:41 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 49 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>
                            3 years, 49 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>pavithra.vetriselvan@mongodb.com</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|hwwogf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwkl13:</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="3577">Repl 2020-03-09</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|hwwapr:</customfieldvalue>

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