<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:56:33 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-41005] Sharding initialization should not occur before replication recovery</title>
                <link>https://jira.mongodb.org/browse/SERVER-41005</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Consider the startup sequence of a mongod which is both a replica set member and a shard server (i.e. a member in a replica set, where the replica set is a shard in a sharded cluster). When a node starts up with the &lt;tt&gt;--shardsvr&lt;/tt&gt; flag, it needs to initialize some aspects of the sharding system. In particular, it needs to read a document out of the &lt;tt&gt;admin.system.version&lt;/tt&gt; collection with _id:&quot;shardIdentity&quot; in order to establish things like its shard id and the config server connection string.&lt;/p&gt;

&lt;p&gt;This node also needs to perform some initialization tasks for the replication subsystem, in particular replication recovery. This involves replaying oplog in order to ensure that the collection and indices are consistent with all committed writes in the oplog before the node services queries.&lt;/p&gt;

&lt;p&gt;The problem observed in this ticket is that sharding initialization takes place prior to replication recovery. Therefore, the sharding system may attempt to perform reads, at least reads against &lt;tt&gt;admin.system.version&lt;/tt&gt;, before replication recovery has occurred. Sharding initialization could therefore fail to see committed data. For example, it could fail to see the shard identity document, even though the write of the shard identity document was committed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="757984">SERVER-41005</key>
            <summary>Sharding initialization should not occur before replication recovery</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">[DO NOT USE] Backlog - Sharding Team</assignee>
                                    <reporter username="david.storch@mongodb.com">David Storch</reporter>
                        <labels>
                    </labels>
                <created>Fri, 3 May 2019 20:06:23 +0000</created>
                <updated>Tue, 6 Dec 2022 03:00:14 +0000</updated>
                            <resolved>Fri, 21 Feb 2020 17:34:39 +0000</resolved>
                                                                    <component>Replication</component>
                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="2298506" author="xgen-internal-githook" created="Wed, 26 Jun 2019 17:03:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Carey&apos;, &apos;email&apos;: &apos;jcarey@argv.me&apos;, &apos;username&apos;: &apos;hanumantmk&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41799&quot; title=&quot;Update shard_aware_init to flush its shard identity before shutdown&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41799&quot;&gt;&lt;del&gt;SERVER-41799&lt;/del&gt;&lt;/a&gt; await stable TS in shard_aware_init&lt;/p&gt;

&lt;p&gt;We currently spin up sharding in advance of replication (see&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41005&quot; title=&quot;Sharding initialization should not occur before replication recovery&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41005&quot;&gt;&lt;del&gt;SERVER-41005&lt;/del&gt;&lt;/a&gt;). Because of that, it is possible for sharding to miss out&lt;br/&gt;
on certain writes on startup (writes to admin.system.version that are&lt;br/&gt;
still in the oplog and haven&apos;t yet been recovered).&lt;/p&gt;

&lt;p&gt;It&apos;s going to be quite difficult to untangle all the dependencies&lt;br/&gt;
between sharding and replication, and in the mean while shard_aware_init&lt;br/&gt;
has more failures than we&apos;d like. See BF-12759. That particular test&lt;br/&gt;
specifically checks that corrupting our version (via a manual update to&lt;br/&gt;
admin.system.version) causes mongod to crash on startup. The problem is&lt;br/&gt;
that because we start sharding before replication (and also do a&lt;br/&gt;
complicated dance of restarting in standalone mode to corrupt the&lt;br/&gt;
document), we can perform an update when the document we want to modify&lt;br/&gt;
isn&apos;t present (because it&apos;s still in the oplog and we&apos;re in standalone&lt;br/&gt;
mode), and then fail to crash on startup.&lt;/p&gt;

&lt;p&gt;So let&apos;s fix up that test by waiting to flush the oplog before shutting&lt;br/&gt;
down the node (when in replica set mode).&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 303adb5e50eb02d077b734aa27ae8d02a781d7a2)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/22c05b4a4fcc7b0213041067bd9539db9d4da8f5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/22c05b4a4fcc7b0213041067bd9539db9d4da8f5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2290291" author="xgen-internal-githook" created="Wed, 19 Jun 2019 19:22:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Carey&apos;, &apos;email&apos;: &apos;jcarey@argv.me&apos;, &apos;username&apos;: &apos;hanumantmk&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41799&quot; title=&quot;Update shard_aware_init to flush its shard identity before shutdown&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41799&quot;&gt;&lt;del&gt;SERVER-41799&lt;/del&gt;&lt;/a&gt; await stable TS in shard_aware_init&lt;/p&gt;

&lt;p&gt;We currently spin up sharding in advance of replication (see&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41005&quot; title=&quot;Sharding initialization should not occur before replication recovery&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41005&quot;&gt;&lt;del&gt;SERVER-41005&lt;/del&gt;&lt;/a&gt;). Because of that, it is possible for sharding to miss out&lt;br/&gt;
on certain writes on startup (writes to admin.system.version that are&lt;br/&gt;
still in the oplog and haven&apos;t yet been recovered).&lt;/p&gt;

&lt;p&gt;It&apos;s going to be quite difficult to untangle all the dependencies&lt;br/&gt;
between sharding and replication, and in the mean while shard_aware_init&lt;br/&gt;
has more failures than we&apos;d like. See BF-12759. That particular test&lt;br/&gt;
specifically checks that corrupting our version (via a manual update to&lt;br/&gt;
admin.system.version) causes mongod to crash on startup. The problem is&lt;br/&gt;
that because we start sharding before replication (and also do a&lt;br/&gt;
complicated dance of restarting in standalone mode to corrupt the&lt;br/&gt;
document), we can perform an update when the document we want to modify&lt;br/&gt;
isn&apos;t present (because it&apos;s still in the oplog and we&apos;re in standalone&lt;br/&gt;
mode), and then fail to crash on startup.&lt;/p&gt;

&lt;p&gt;So let&apos;s fix up that test by waiting to flush the oplog before shutting&lt;br/&gt;
down the node (when in replica set mode).&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/303adb5e50eb02d077b734aa27ae8d02a781d7a2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/303adb5e50eb02d077b734aa27ae8d02a781d7a2&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="805392">SERVER-41799</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1548582">SERVER-52989</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>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25141"><![CDATA[Sharding]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 28 May 2019 17:16:18 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 33 weeks 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>
                            4 years, 33 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16.0</customfieldvalue>

                        </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</customfieldvalue>
            <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huxtvb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hun87b:</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_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|huxg4n:</customfieldvalue>

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