<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:08:22 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-67530] Loss of shard RS primary can lead to a loss of read availability for a collection after failed migration</title>
                <link>https://jira.mongodb.org/browse/SERVER-67530</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;If a shard&apos;s replica set loses its primary node and is unable to elect a new new in the inopportune moment where a failed migration needs to be recovered, then the collection will not be available on that shard.&lt;/p&gt;

&lt;p&gt;This is because the recipient will &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5ab8714a12cbe55b6a3ca417e0a53b228625a057/src/mongo/db/s/migration_source_manager.cpp#L876&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;clear the filtering metadata&lt;/a&gt; when an error occurs. &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5ab8714a12cbe55b6a3ca417e0a53b228625a057/src/mongo/db/s/migration_source_manager.cpp#L859&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Complete migration&lt;/a&gt; will also not succeed since it can&apos;t reach the primary of the recipient node, which means that the migration coordinator document will not be deleted. This means that when new requests comes in for the collection, shard recovery will get triggerred because the filtering metadata was cleared earlier. The recovery process will discover that the migration coordinator document is still around and will try to perform complete migration again, but will get timed out trying to look for primary from the RSM.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2076509">SERVER-67530</key>
            <summary>Loss of shard RS primary can lead to a loss of read availability for a collection after failed migration</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="backlog-server-sharding-emea">[DO NOT USE] Backlog - Sharding EMEA</assignee>
                                    <reporter username="randolph@mongodb.com">Randolph Tan</reporter>
                        <labels>
                            <label>sharding-product-sync</label>
                    </labels>
                <created>Fri, 24 Jun 2022 20:24:55 +0000</created>
                <updated>Tue, 6 Dec 2022 00:00:24 +0000</updated>
                            <resolved>Thu, 14 Jul 2022 15:58:57 +0000</resolved>
                                    <version>5.0.3</version>
                    <version>6.1.0-rc0</version>
                                                                        <votes>0</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="4679636" author="garaudy.etienne" created="Thu, 14 Jul 2022 15:58:58 +0000"  >&lt;p&gt;Customer can use read concern level available to do reads. They won&#8217;t be able to do w:1 writes without having a majority write availability because cannot release the critical section.&#160;&lt;/p&gt;

&lt;p&gt;As such, closing as &quot;won&apos;t fix&quot;&lt;/p&gt;</comment>
                            <comment id="4679186" author="renctan" created="Thu, 14 Jul 2022 13:59:34 +0000"  >&lt;p&gt;I don&apos;t think this is &quot;worked as designed&quot; in the strict sense, I&apos;ll leave it to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=garaudy.etienne%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;garaudy.etienne@mongodb.com&quot;&gt;garaudy.etienne@mongodb.com&lt;/a&gt; to evaluate whether we are willing to accept this edge case and close it as &quot;won&apos;t fix&quot;.&lt;/p&gt;</comment>
                            <comment id="4678745" author="JIRAUSER1263826" created="Thu, 14 Jul 2022 10:10:31 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=randolph%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;randolph@mongodb.com&quot;&gt;randolph@mongodb.com&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=garaudy.etienne%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;garaudy.etienne@mongodb.com&quot;&gt;garaudy.etienne@mongodb.com&lt;/a&gt; did we agree that this works as designed? &lt;/p&gt;</comment>
                            <comment id="4647692" author="renctan" created="Wed, 29 Jun 2022 13:55:28 +0000"  >&lt;p&gt;It can happen from the moment we added the migration coordinator recovery that needs to talk to primary and wait for w: majority which was in v4.4. So any scenario that will lead it to performing recovery during a query when recipient doesn&apos;t have primary can experience this issue. I think the test I attched won&apos;t be able to demostrate this as migration behaves differently (for example, it doesn&apos;t clear metadata on error).&lt;/p&gt;</comment>
                            <comment id="4647055" author="kaloian.manassiev" created="Wed, 29 Jun 2022 08:30:37 +0000"  >&lt;p&gt;I meant more whether it can happen in older (pre-5.0 versions) versions and what in older versions was preventing it from happening?&lt;/p&gt;</comment>
                            <comment id="4642679" author="renctan" created="Mon, 27 Jun 2022 17:58:56 +0000"  >&lt;p&gt;Attached test_v6.1.js because it behaves a little bit differently on latest head. The original test.js will hang because the migration will get stuck trying to wait for recipient to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5fb558f05ae5fd38a77af927aac439f28af71da2/src/mongo/db/s/migration_coordinator.cpp#L290&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;release critical section&lt;/a&gt; that involves doing a w: majority write. The new test steps down the primary instead of trying to to join the migration. New queries will also get stuck at waiting for the recipient to release critical section when attempting to recover shard version.&lt;/p&gt;</comment>
                            <comment id="4642470" author="renctan" created="Mon, 27 Jun 2022 17:02:57 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev@mongodb.com&quot;&gt;kaloian.manassiev@mongodb.com&lt;/a&gt;, I think it can happen in master too. The test.js I posted behaved differently so I will update the ticket once I have more conclusive findings for master. v5.0.3 was the version where I was observing this behavior, not necessarily the version that started failing.&lt;/p&gt;</comment>
                            <comment id="4642301" author="kaloian.manassiev" created="Mon, 27 Jun 2022 16:11:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=randolph%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;randolph@mongodb.com&quot;&gt;randolph@mongodb.com&lt;/a&gt;, this says 5.0.3. Do you know what in 5.0.3 specifically caused this problem? This could not have possibly worked correctly before PM-1645, because at that point we would have treated the collection as UNSHARDED, but if an up-to-date router hit it, it would still have triggered recovery.&lt;/p&gt;</comment>
                            <comment id="4639248" author="renctan" created="Fri, 24 Jun 2022 20:27:00 +0000"  >&lt;p&gt;Added test.js to demonstrate the issue.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2080316">DOCS-15461</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="386773" name="test.js" size="2490" author="randolph@mongodb.com" created="Fri, 24 Jun 2022 20:26:39 +0000"/>
                            <attachment id="387050" name="test_v6.1.js" size="1040" author="randolph@mongodb.com" created="Mon, 27 Jun 2022 17:51:15 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9.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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25133"><![CDATA[Sharding EMEA]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 27 Jun 2022 16:11:08 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 29 weeks, 6 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 29 weeks, 6 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>backlog-server-sharding-emea</customfieldvalue>
            <customfieldvalue>cris.insignarescuello@mongodb.com</customfieldvalue>
            <customfieldvalue>garaudy.etienne@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>randolph@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0zybb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0isyo:</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="5738">Sharding 2022-06-27</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|i0zkgn:</customfieldvalue>

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