<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:14:24 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-47517] Secondaries will always try to vote irrespective of the commit quorum (on/off) value.</title>
                <link>https://jira.mongodb.org/browse/SERVER-47517</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This is going to be some follow-up work for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46659&quot; title=&quot;Make initial sync work with two phase index builds + commit quorum on &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46659&quot;&gt;&lt;del&gt;SERVER-46659&lt;/del&gt;&lt;/a&gt;. We need to change the listIndexes command to return the commitQuorum for unfinished indexes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/e95c1625acdaed28ddb9ebda5c293e307e8ee284/src/mongo/db/index_builds_coordinator_mongod.cpp#L460&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;This invariant&lt;/a&gt; holds for startup recovery and rollback recovery as we start from a point-in-time. But for initial sync, this invariant will not hold due to the nature of initial sync. To resolve this, we&apos;ll need to get the commitQuorum from the listIndexes command and persist it to disk before calling applyStartIndexBuild() to set up unfinished index builds during the collection cloning phase.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1313551">SERVER-47517</key>
            <summary>Secondaries will always try to vote irrespective of the commit quorum (on/off) value.</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="gregory.wlodarek@mongodb.com">Gregory Wlodarek</assignee>
                                    <reporter username="gregory.wlodarek@mongodb.com">Gregory Wlodarek</reporter>
                        <labels>
                    </labels>
                <created>Mon, 13 Apr 2020 20:48:08 +0000</created>
                <updated>Sun, 29 Oct 2023 22:09:34 +0000</updated>
                            <resolved>Fri, 17 Apr 2020 16:12:38 +0000</resolved>
                                                    <fixVersion>4.4.0-rc2</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Index Maintenance</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3044952" author="xgen-internal-githook" created="Fri, 17 Apr 2020 16:23:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;, &apos;username&apos;: &apos;GWlodarek&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47517&quot; title=&quot;Secondaries will always try to vote irrespective of the commit quorum (on/off) value.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47517&quot;&gt;&lt;del&gt;SERVER-47517&lt;/del&gt;&lt;/a&gt; Secondary nodes will always try to vote for committing the index build, even if the commit quorum is off&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 5713af29cd78dd8322c25c8d0b13f78ed6de34ae)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1c1e1b8eb2f0417d243168d83ab3a12ba657175c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1c1e1b8eb2f0417d243168d83ab3a12ba657175c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3044886" author="xgen-internal-githook" created="Fri, 17 Apr 2020 16:11:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;, &apos;username&apos;: &apos;GWlodarek&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47517&quot; title=&quot;Secondaries will always try to vote irrespective of the commit quorum (on/off) value.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47517&quot;&gt;&lt;del&gt;SERVER-47517&lt;/del&gt;&lt;/a&gt; Secondary nodes will always try to vote for committing the index build, even if the commit quorum is off&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5713af29cd78dd8322c25c8d0b13f78ed6de34ae&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5713af29cd78dd8322c25c8d0b13f78ed6de34ae&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3038904" author="suganthi.mani" created="Tue, 14 Apr 2020 15:08:40 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46659&quot; title=&quot;Make initial sync work with two phase index builds + commit quorum on &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46659&quot;&gt;&lt;del&gt;SERVER-46659&lt;/del&gt;&lt;/a&gt; makes collection cloning phase to start the 2 phase index builds on initial syncing node for the unfinished indexes returned by listIndexes cmd. So, the index build started during collection initial sync cloning phase may not have a on-disk commit quorum value while trying to vote and can hit &lt;a href=&quot;https://github.com/mongodb/mongo/blob/e95c1625acdaed28ddb9ebda5c293e307e8ee284/src/mongo/db/index_builds_coordinator_mongod.cpp#L460&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this invariant&lt;/a&gt;. This can happen for below 2 cases.&lt;/p&gt;

&lt;p&gt;1) User collection, say, &apos;foo&apos; which starts the 2 phase index build, gets cloned before &apos;config&apos; collection cloning.&lt;br/&gt;
2) Index build started on sync source after cloning config collection.  Below is the sequence&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Initial sync node finished cloning config db.&lt;/li&gt;
	&lt;li&gt;Index build &#8216;x_1&#8217; started on sync source for foo collection. This will result in persisting commit quorum value on-disk on sync source.&lt;/li&gt;
	&lt;li&gt;Cloning of foo collection makes the initial sync node to start the index build &apos;x_1&apos;.&lt;/li&gt;
&lt;/ul&gt;

</comment>
                            <comment id="3037955" author="suganthi.mani" created="Mon, 13 Apr 2020 23:01:45 +0000"  >&lt;p&gt;Another alternative approach to solve the server crash is that &lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/e95c1625acdaed28ddb9ebda5c293e307e8ee284/src/mongo/db/index_builds_coordinator_mongod.cpp#L428&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;IndexBuildsCoordinatorMongod::_signalIfCommitQuorumNotEnabled()&lt;/a&gt;&lt;br/&gt;
1) Only primary (canAcceptWritesFor() is true) should need to read the on-disk commit quorum value to see if they need to vote or not.&lt;br/&gt;
2) Non-primary (secondary, initial sync&amp;amp; rollback state) does not need to know the on-disk commit quorum value. Instead it will always try to vote&lt;br/&gt;
Now, on the primary - &lt;a href=&quot;https://github.com/mongodb/mongo/blob/e95c1625acdaed28ddb9ebda5c293e307e8ee284/src/mongo/db/index_builds_coordinator_mongod.cpp#L335&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;IndexBuildsCoordinatorMongod::voteCommitIndexBuild()&lt;/a&gt;&lt;br/&gt;
1) persistCommitReadyMemberInfo() will persist the voter&#8217;s info only if the commit quorum value is non-zero. (To be noted, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47464&quot; title=&quot;Prevent SetIndexCommitQuorum from changing commit quorum on to off &amp;amp; vice versa.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47464&quot;&gt;&lt;del&gt;SERVER-47464&lt;/del&gt;&lt;/a&gt; - Prevent SetIndexCommitQuorum from changing commit quorum on to off &amp;amp; vice versa).&lt;br/&gt;
2) It can return to the voter node a non-retryable/acceptable error code if any node try to vote for index build with on-disk commit quorum value as 0 (commit quorum off).&lt;/p&gt;

&lt;p&gt;Main Idea:  Node doesn&apos;t need to know the on-disk commit quorum value unless they are primary.&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">
                                        <issuelink>
            <issuekey id="1233753">SERVER-46659</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1310838">SERVER-47464</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>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, 13 Apr 2020 23:01:45 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 42 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_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_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, 42 weeks, 5 days 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>gregory.wlodarek@mongodb.com</customfieldvalue>
            <customfieldvalue>suganthi.mani@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxf1gv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr5i0f:</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="3634">Execution Team 2020-04-20</customfieldvalue>
    <customfieldvalue id="3635">Execution Team 2020-05-04</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|hxenq7:</customfieldvalue>

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