<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:37:47 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-34768] Rollback can fail if run against a lagged node that catches up</title>
                <link>https://jira.mongodb.org/browse/SERVER-34768</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It is possible to decide to roll back against a sync source that is behind the rollback node (due to receiving an empty batch), then resolve the common point when that same source is ahead. This leads to the rollback node crashing during oplog truncation, as there are no entries after the common point.&lt;/p&gt;</description>
                <environment></environment>
        <key id="537162">SERVER-34768</key>
            <summary>Rollback can fail if run against a lagged node that catches up</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="siyuan.zhou@mongodb.com">Siyuan Zhou</assignee>
                                    <reporter username="vesselina.ratcheva@mongodb.com">Vesselina Ratcheva</reporter>
                        <labels>
                    </labels>
                <created>Tue, 1 May 2018 15:46:25 +0000</created>
                <updated>Sun, 29 Oct 2023 22:32:12 +0000</updated>
                            <resolved>Wed, 15 Jan 2020 03:33:04 +0000</resolved>
                                                    <fixVersion>4.2.4</fixVersion>
                    <fixVersion>4.3.3</fixVersion>
                    <fixVersion>4.0.17</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="2860499" author="xgen-internal-githook" created="Mon, 10 Feb 2020 23:37:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;visualzhou&apos;, &apos;name&apos;: &apos;Siyuan Zhou&apos;, &apos;email&apos;: &apos;siyuan.zhou@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34768&quot; title=&quot;Rollback can fail if run against a lagged node that catches up&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34768&quot;&gt;&lt;del&gt;SERVER-34768&lt;/del&gt;&lt;/a&gt; Sync source&apos;s optime cannot be behind the syncing node even if chaining is disabled.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 319757ebb72611fb91044a2a81d1b77a6f3729c1)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46050&quot; title=&quot;Use getLastAppliedOpTime rather than getHeartbeatAppliedOpTime for checking primary&amp;#39;s position&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46050&quot;&gt;&lt;del&gt;SERVER-46050&lt;/del&gt;&lt;/a&gt; Use getLastAppliedOpTime rather than getHeartbeatAppliedOpTime for checking primary&apos;s position.&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1191a063fd235df4ab23bb75e59eb1e530e2e93c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1191a063fd235df4ab23bb75e59eb1e530e2e93c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2843461" author="xgen-internal-githook" created="Fri, 7 Feb 2020 22:39:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;visualzhou&apos;, &apos;name&apos;: &apos;Siyuan Zhou&apos;, &apos;email&apos;: &apos;siyuan.zhou@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34768&quot; title=&quot;Rollback can fail if run against a lagged node that catches up&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34768&quot;&gt;&lt;del&gt;SERVER-34768&lt;/del&gt;&lt;/a&gt; Sync source&apos;s optime cannot be behind the syncing node even if chaining is disabled.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 319757ebb72611fb91044a2a81d1b77a6f3729c1)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d94888c0d0a8065ca57d354ece33b3c2a1a5a6d6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d94888c0d0a8065ca57d354ece33b3c2a1a5a6d6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2725480" author="xgen-internal-githook" created="Tue, 14 Jan 2020 22:25:46 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Siyuan Zhou&apos;, &apos;email&apos;: &apos;siyuan.zhou@mongodb.com&apos;, &apos;username&apos;: &apos;visualzhou&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34768&quot; title=&quot;Rollback can fail if run against a lagged node that catches up&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34768&quot;&gt;&lt;del&gt;SERVER-34768&lt;/del&gt;&lt;/a&gt; Sync source&apos;s optime cannot be behind the syncing node even if chaining is disabled.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/319757ebb72611fb91044a2a81d1b77a6f3729c1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/319757ebb72611fb91044a2a81d1b77a6f3729c1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2714473" author="tess.avitabile" created="Thu, 9 Jan 2020 15:59:38 +0000"  >&lt;p&gt;Feel free to work on this on BF Friday.&lt;/p&gt;</comment>
                            <comment id="2483681" author="siyuan.zhou@10gen.com" created="Tue, 15 Oct 2019 20:09:31 +0000"  >&lt;p&gt;Re-opening this ticket since &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33812&quot; title=&quot;First initial sync oplog read batch fetched may be empty; do not treat as an error.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33812&quot;&gt;&lt;del&gt;SERVER-33812&lt;/del&gt;&lt;/a&gt; has been reverted. We need to address the root cause of the race.&lt;/p&gt;

&lt;p&gt;To answer &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;&apos;s question above,&#160;Will pointed out in&#160;BF-14623:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;It also could have been possible even before secondary reads were allowed during batch application. Even if the PBWM lock blocks all readers during batch application, it should be possible for a oplog reader on thread T1 to acquire the PBWM, read an empty batch, release the lock, and then a new batch is applied on a separate thread and advances the lastApplied optime before we append oplog query metadata for the reader on T1. This could produce the same issue i.e. we return an empty batch but with a lastApplied optime that is newer than our own lastApplied optime.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                            <comment id="1953751" author="william.schultz" created="Mon, 23 Jul 2018 15:39:04 +0000"  >&lt;p&gt;Fixed by &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33812&quot; title=&quot;First initial sync oplog read batch fetched may be empty; do not treat as an error.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33812&quot;&gt;&lt;del&gt;SERVER-33812&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1953732" author="tess.avitabile" created="Mon, 23 Jul 2018 15:32:01 +0000"  >&lt;p&gt;That makes sense to me. Thank you for investigating. I think it&apos;s fine to close this ticket.&lt;/p&gt;</comment>
                            <comment id="1879420" author="judah.schvimer" created="Tue, 1 May 2018 18:36:41 +0000"  >&lt;p&gt;I think it is definitely a bug if a node chooses a sync source that is behind it. It doesn&apos;t look like the &lt;tt&gt;SyncSourceResolver&lt;/tt&gt; checks that the sync source candidate is ahead of it, which means that if chaining is disallowed, nothing is preventing nodes from choosing a sync source behind them. If chaining is not disabled, the fact that we compare our lastAppliedOpTime to a potential candidate&apos;s (and not just the timestamp), likely prevents us from syncing from a node behind us.&#160;&lt;/p&gt;</comment>
                            <comment id="1879406" author="spencer" created="Tue, 1 May 2018 18:24:00 +0000"  >&lt;p&gt;We probably need to do more to make sure that we don&apos;t go into rollback against a node that&apos;s just behind us but not on a divergent branch of history.&#160; It&apos;s possible this can only happen if chaining is disallowed.&#160; We also should probably take a look at&#160;catchup_takeover_two_nodes_ahead.js and make sure there&apos;s no issue with the test.&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">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="509689">SERVER-33812</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1139810">SERVER-46050</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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>7.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></customfieldvalue>
    <customfieldvalue key="15640"><![CDATA[v4.0]]></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>Tue, 1 May 2018 18:24:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 2 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>
                            4 years, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>52.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>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
            <customfieldvalue>vesselina.ratcheva@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|htwx1z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr9jgv:</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="2297">Repl 2018-06-18</customfieldvalue>
    <customfieldvalue id="2298">Repl 2018-07-02</customfieldvalue>
    <customfieldvalue id="2383">Repl 2018-07-16</customfieldvalue>
    <customfieldvalue id="2384">Repl 2018-07-30</customfieldvalue>
    <customfieldvalue id="3304">Repl 2019-11-18</customfieldvalue>
    <customfieldvalue id="3436">Repl 2019-12-02</customfieldvalue>
    <customfieldvalue id="3440">Repl 2020-01-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|htwjav:</customfieldvalue>

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