<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:15:34 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-27581] shouldRetry() logic in multiInitialSyncApply_noAbort() is over-aggressive</title>
                <link>https://jira.mongodb.org/browse/SERVER-27581</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently multiInitialSyncApply_noAbort() calls shouldRetry() on all !OK statuses returned from applying any non-command op. If shouldRetry() returns false, the error is ignored. It should probably only do this for error cases that are expecting the shouldRetry() treatment (such as an update not finding a document) rather than for absolutely all errors. &lt;/p&gt;</description>
                <environment></environment>
        <key id="342565">SERVER-27581</key>
            <summary>shouldRetry() logic in multiInitialSyncApply_noAbort() is over-aggressive</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="9">Done</resolution>
                                        <assignee username="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="mathias@mongodb.com">Mathias Stearn</reporter>
                        <labels>
                    </labels>
                <created>Wed, 4 Jan 2017 19:20:13 +0000</created>
                <updated>Wed, 6 Dec 2017 21:16:13 +0000</updated>
                            <resolved>Tue, 11 Jul 2017 14:24:26 +0000</resolved>
                                                    <fixVersion>3.4.7</fixVersion>
                    <fixVersion>3.5.10</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="1623640" author="xgen-internal-githook" created="Mon, 17 Jul 2017 15:33:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27581&quot; title=&quot;shouldRetry() logic in multiInitialSyncApply_noAbort() is over-aggressive&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27581&quot;&gt;&lt;del&gt;SERVER-27581&lt;/del&gt;&lt;/a&gt; Only fetch missing documents on update oplog entries during initial&lt;br/&gt;
sync&lt;/p&gt;

&lt;p&gt;(cherry picked from commit f33e9a715cf3eb4d29d8d5c5a926e5edacf9f63d)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cbd74166d8930657f63e8e90791d276e15c3d3cb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cbd74166d8930657f63e8e90791d276e15c3d3cb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1618765" author="xgen-internal-githook" created="Tue, 11 Jul 2017 14:22:18 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;judahschvimer&apos;, u&apos;name&apos;: u&apos;Judah Schvimer&apos;, u&apos;email&apos;: u&apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27581&quot; title=&quot;shouldRetry() logic in multiInitialSyncApply_noAbort() is over-aggressive&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27581&quot;&gt;&lt;del&gt;SERVER-27581&lt;/del&gt;&lt;/a&gt; Only fetch missing documents on update oplog entries during initial&lt;br/&gt;
sync&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f33e9a715cf3eb4d29d8d5c5a926e5edacf9f63d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f33e9a715cf3eb4d29d8d5c5a926e5edacf9f63d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1605260" author="redbeard0531" created="Fri, 23 Jun 2017 15:21:59 +0000"  >&lt;p&gt;That sounds right to me.&lt;/p&gt;</comment>
                            <comment id="1601103" author="judah.schvimer" created="Mon, 19 Jun 2017 20:11:03 +0000"  >&lt;p&gt;The only time we ignore error statuses is for non-commands since we do propagate errors &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/sync_tail.cpp#L1195-L1199&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;on commands.&lt;/a&gt; We also always catch exceptions and handle them &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/sync_tail.cpp#L1217-L1227&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;appropriately&lt;/a&gt;, so the only thing we need to be concerned about is bad statuses. &lt;/p&gt;

&lt;p&gt;In &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/sync_tail.cpp#L284-L395&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;SyncApply&lt;/a&gt; we can only return a bad status for non-commands in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/sync_tail.cpp#L332&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;applyOperationInlock&lt;/a&gt; or if there is a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/sync_tail.cpp#L390-L394&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;bad op type&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;applyOperation_inLock can return a bad status in a few places: if a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/oplog.cpp#L847&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;multi-insert fails&lt;/a&gt; , if a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/oplog.cpp#L891&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;single insert fails&lt;/a&gt;, or if an &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/oplog.cpp#L944-L976&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;update fails&lt;/a&gt;. The inserts could fail for any number of reasons. The updates fail if they do not match anything. If they don&apos;t, we check a few error criteria. In secondary application the only one that&apos;s relevant is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bbf93be45d91c8caa7dc43ae5216802f2b9a5ec2/src/mongo/db/repl/oplog.cpp#L944-L949&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the first&lt;/a&gt; which we will always enter since all updates in oplog entries have simple query predicates. &lt;/p&gt;

&lt;p&gt;It appears that on the &lt;tt&gt;OperationFailed&lt;/tt&gt; update errors, we should be retrying but otherwise we probably should be failing more loudly, and restarting initial sync.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=redbeard0531&quot; class=&quot;user-hover&quot; rel=&quot;redbeard0531&quot;&gt;redbeard0531&lt;/a&gt;, does this appropriately explain what you see is wrong here?&lt;/p&gt;</comment>
                            <comment id="1481644" author="judah.schvimer" created="Fri, 20 Jan 2017 20:55:56 +0000"  >&lt;p&gt;We need to establish if this is a correctness bug.&lt;/p&gt;</comment>
                            <comment id="1470564" author="spencer" created="Thu, 5 Jan 2017 21:53:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=redbeard0531&quot; class=&quot;user-hover&quot; rel=&quot;redbeard0531&quot;&gt;redbeard0531&lt;/a&gt;, what&apos;s the impact of leaving things as they are?  Is this a correctness issue?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="14340"><![CDATA[v3.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, 5 Jan 2017 21:53:24 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 30 weeks, 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_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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 30 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>mathias@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht0g8f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht1a7z:</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="1619">Repl 2017-05-08</customfieldvalue>
    <customfieldvalue id="1710">Repl 2017-05-29</customfieldvalue>
    <customfieldvalue id="1712">Repl 2017-06-19</customfieldvalue>
    <customfieldvalue id="1768">Repl 2017-07-31</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|hs4k5r:</customfieldvalue>

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