<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:21:50 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-50140] Initial sync cannot survive unclean restart of the sync source</title>
                <link>https://jira.mongodb.org/browse/SERVER-50140</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Investigate the behavior of resumable initial sync when sync source restarts after unclean shutdown.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1432279">SERVER-50140</key>
            <summary>Initial sync cannot survive unclean restart of the sync source</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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="lingzhi.deng@mongodb.com">Lingzhi Deng</assignee>
                                    <reporter username="suganthi.mani@mongodb.com">Suganthi Mani</reporter>
                        <labels>
                            <label>KP44</label>
                    </labels>
                <created>Thu, 6 Aug 2020 13:54:51 +0000</created>
                <updated>Sun, 29 Oct 2023 22:04:45 +0000</updated>
                            <resolved>Wed, 12 Aug 2020 18:01:33 +0000</resolved>
                                    <version>4.4.0</version>
                                    <fixVersion>4.4.1</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>15</watches>
                                                                                                                <comments>
                            <comment id="3337264" author="xgen-internal-githook" created="Thu, 13 Aug 2020 16:17:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Lingzhi Deng&apos;, &apos;email&apos;: &apos;lingzhi.deng@mongodb.com&apos;, &apos;username&apos;: &apos;ldennis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50140&quot; title=&quot;Initial sync cannot survive unclean restart of the sync source&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50140&quot;&gt;&lt;del&gt;SERVER-50140&lt;/del&gt;&lt;/a&gt;: Initial sync cannot survive unclean restart of the sync source&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 06169f718a7aec04f952979ffa6590e4334dea5a)&lt;br/&gt;
(cherry picked from commit d598744856190df68f36c3f7a88decd30fa8e912)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9b68f8ceab4752337688b8feebf23976094bac0f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9b68f8ceab4752337688b8feebf23976094bac0f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3335044" author="xgen-internal-githook" created="Wed, 12 Aug 2020 17:52:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Lingzhi Deng&apos;, &apos;email&apos;: &apos;lingzhi.deng@mongodb.com&apos;, &apos;username&apos;: &apos;ldennis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-50140&quot; title=&quot;Initial sync cannot survive unclean restart of the sync source&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-50140&quot;&gt;&lt;del&gt;SERVER-50140&lt;/del&gt;&lt;/a&gt;: Initial sync cannot survive unclean restart of the sync source&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d598744856190df68f36c3f7a88decd30fa8e912&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d598744856190df68f36c3f7a88decd30fa8e912&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3328016" author="suganthi.mani" created="Fri, 7 Aug 2020 16:19:40 +0000"  >&lt;p&gt;Just adding some additional points to Eric, to my understanding, after durable history project, both repl startup and rollback state will be executing  the  WT method rollbackTostable().&lt;/p&gt;</comment>
                            <comment id="3327696" author="milkie" created="Fri, 7 Aug 2020 16:12:33 +0000"  >&lt;blockquote&gt;&lt;p&gt;One concern with incrementing the rollback ID would be that it would make metrics no longer accurate about how many replication rollbacks we had. &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I&apos;m not really sure why people would care whether a rollback was &quot;replication rollback&quot; or not.  The method used to do rollback is almost the same &amp;#8211; recover-to-timestamp is used both for replication rollback and at startup.  So in some sense, it would be more accurate to count unclean shutdowns as a &quot;rollback&quot;.&lt;/p&gt;

&lt;p&gt;Indeed, after we switched table logging to be almost all &quot;unlogged&quot;, that had the effect of converting a lot of situations that would have been &quot;replication rollback&quot; into ones where the rollback occurred at startup recovery instead, so the metrics are already biased as of that change.&lt;/p&gt;</comment>
                            <comment id="3327312" author="judah.schvimer" created="Fri, 7 Aug 2020 15:52:47 +0000"  >&lt;p&gt;AFAIK, the rollback ID is only used for initial sync, sync source selection post rollback via refetch, and downstream implementations of initial sync. &lt;/p&gt;

&lt;p&gt;One concern with incrementing the rollback ID would be that it would make metrics no longer accurate about how many replication rollbacks we had. We could fix that concern by adding a metric specifically for replication rollback counting. &lt;/p&gt;

&lt;p&gt;I would expect downstream implementations of initial sync to want the same fix as this bug.&lt;/p&gt;

&lt;p&gt;Sync source selection post rollback via refetch would also want the same fix. That uses the rollback ID to confirm that a potential sync source still has a node&apos;s minValid oplog entry. Since this is a way for a potential sync source to lose a minValid oplog entry, it would make sense to bump the rollback ID in this case.&lt;/p&gt;</comment>
                            <comment id="3326822" author="suganthi.mani" created="Fri, 7 Aug 2020 14:58:44 +0000"  >&lt;p&gt;Even if it&apos;s not rollback ID, we can have separate id to track the unclean shutdown. But, I am also curious to know how we can distinguish between clean shutdown-restart and unclean shutdown-restart? Is it something by using &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbeb56709be4a9b5a764c7809105ad2e30167fc9/src/mongo/db/storage/storage_engine_init.cpp#L212-L221&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this&lt;/a&gt; logic? or is it possible to use&#160; &lt;tt&gt;&quot;oplogTruncateAfterPoint&quot;&lt;/tt&gt; to get that information as this field will be cleared out during the clean shutdown on primary and this will be set on secondaries only if the secondaries crashes while writing oplog entries for a batch. &lt;/p&gt;</comment>
                            <comment id="3326370" author="matthew.russotto" created="Fri, 7 Aug 2020 14:23:30 +0000"  >&lt;p&gt;Does it make sense to have a node increment its rollback ID during restart from unclean shutdown?  Since it could have effectively &quot;rolled back&quot; even if no formal rollback happened?  Or would that have undesirable side effects?&lt;/p&gt;</comment>
                            <comment id="3325397" author="milkie" created="Thu, 6 Aug 2020 20:02:11 +0000"  >&lt;p&gt;It sounds like this situation would be hard to hit in practice, since you would need to have a primary node undergo an unclean shutdown, restart, and then NOT undergo any rollback.&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="1394050">SERVER-49159</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1438097">SERVER-50251</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.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>Thu, 6 Aug 2020 14:58:07 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 25 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_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, 25 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>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>lingzhi.deng@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.russotto@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|hxypn3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr5o6f:</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="4140">Repl 2020-08-24</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>
                                    <customfieldvalue><![CDATA[eric.sedor@mongodb.com]]></customfieldvalue>
    

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxybwf:</customfieldvalue>

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