<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:30:04 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-32382] Rollback can time out if oplog entries are large</title>
                <link>https://jira.mongodb.org/browse/SERVER-32382</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;During rollback we query the remote oplog, fetching only &lt;a href=&quot;https://github.com/mongodb/mongo/blob/v3.4/src/mongo/db/repl/oplog_interface_remote.cpp#L77&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;a couple of small fields from each oplog entry&lt;/a&gt;, and we return up to 16 MB per batch, or about 600 k entries. This requires reading up to 600 k entire oplog entries on the remote end, and if the oplog entries are large and not in cache this can be a very substantial amount of data to be read from disk (tens or hundreds of GB), and may require more than the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/v3.4/src/mongo/db/repl/bgsync.cpp#L71&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;hard-coded 10-minute timeout&lt;/a&gt; to complete. In this case the rollback times out and cannot complete.&lt;/p&gt;</description>
                <environment></environment>
        <key id="473674">SERVER-32382</key>
            <summary>Rollback can time out if oplog entries are large</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="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="bruce.lucas@mongodb.com">Bruce Lucas</reporter>
                        <labels>
                            <label>neweng</label>
                            <label>rollback-optional</label>
                    </labels>
                <created>Mon, 18 Dec 2017 13:48:13 +0000</created>
                <updated>Mon, 30 Oct 2023 23:09:50 +0000</updated>
                            <resolved>Wed, 16 May 2018 15:47:29 +0000</resolved>
                                    <version>3.4.10</version>
                                    <fixVersion>3.6.6</fixVersion>
                    <fixVersion>4.0.0-rc0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>11</watches>
                                                                                                                <comments>
                            <comment id="1931842" author="xgen-internal-githook" created="Tue, 26 Jun 2018 15:52:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;judahschvimer&apos;, &apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;email&apos;: &apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32382&quot; title=&quot;Rollback can time out if oplog entries are large&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32382&quot;&gt;&lt;del&gt;SERVER-32382&lt;/del&gt;&lt;/a&gt; set a default rollback batch size&lt;/p&gt;

&lt;p&gt;(cherry picked from commit e716867bb5c36f7ad4686cf020f5f35b9cd9636e)&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1ba1a9fad2d065243a704b6338812406ac445eb0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1ba1a9fad2d065243a704b6338812406ac445eb0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1931841" author="xgen-internal-githook" created="Tue, 26 Jun 2018 15:52:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;judahschvimer&apos;, &apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;email&apos;: &apos;judah@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32382&quot; title=&quot;Rollback can time out if oplog entries are large&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32382&quot;&gt;&lt;del&gt;SERVER-32382&lt;/del&gt;&lt;/a&gt; add rollback remote oplog batch size&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 9a112a8cb260bfc65bb2bfa3118044744e91a8cb)&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ba312234b81a51a397833d1438c2f83aa2a90aa1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ba312234b81a51a397833d1438c2f83aa2a90aa1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1892984" author="xgen-internal-githook" created="Wed, 16 May 2018 15:47:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;judah@mongodb.com&apos;, &apos;username&apos;: &apos;judahschvimer&apos;, &apos;name&apos;: &apos;Judah Schvimer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32382&quot; title=&quot;Rollback can time out if oplog entries are large&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32382&quot;&gt;&lt;del&gt;SERVER-32382&lt;/del&gt;&lt;/a&gt; set a default rollback batch size&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e716867bb5c36f7ad4686cf020f5f35b9cd9636e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e716867bb5c36f7ad4686cf020f5f35b9cd9636e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1891542" author="xgen-internal-githook" created="Tue, 15 May 2018 13:44:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;judah@mongodb.com&apos;, &apos;username&apos;: &apos;judahschvimer&apos;, &apos;name&apos;: &apos;Judah Schvimer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32382&quot; title=&quot;Rollback can time out if oplog entries are large&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32382&quot;&gt;&lt;del&gt;SERVER-32382&lt;/del&gt;&lt;/a&gt; add rollback remote oplog batch size&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9a112a8cb260bfc65bb2bfa3118044744e91a8cb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9a112a8cb260bfc65bb2bfa3118044744e91a8cb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1825267" author="spencer" created="Tue, 6 Mar 2018 22:45:58 +0000"  >&lt;p&gt;A 10 minute socket timeout already seems ridiculously large, but you&apos;re right that in this case increasing it would work around the real issue and be a very small code change, so I&apos;m open to it.&lt;/p&gt;

&lt;p&gt;EDIT, although it&apos;s probably just as easy to make batch size configurable as to make the timeout configurable, and changing the batch size is probably the better solution.&lt;/p&gt;</comment>
                            <comment id="1825248" author="greg.mckeon" created="Tue, 6 Mar 2018 22:37:17 +0000"  >&lt;p&gt;Back to triage to consider Cailin&apos;s comment.&lt;/p&gt;</comment>
                            <comment id="1822276" author="cailin.nelson@10gen.com" created="Sat, 3 Mar 2018 16:42:14 +0000"  >&lt;p&gt;I don&apos;t think it&apos;s super important.  According to Judah&apos;s investigation on HELP-5504, we are can probably avoid falling into this situation by switching to &lt;tt&gt;w:majority&lt;/tt&gt; writes - therefore improving what happens in this situation is not a high priority.&lt;/p&gt;

&lt;p&gt;That said.... why not set make the magic 10 minutes a &lt;tt&gt;setParameter&lt;/tt&gt;?  So that customers have an emergency &quot;out&quot; if they need it?&lt;/p&gt;</comment>
                            <comment id="1821867" author="greg.mckeon" created="Fri, 2 Mar 2018 21:35:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=cailin.nelson&quot; class=&quot;user-hover&quot; rel=&quot;cailin.nelson&quot;&gt;cailin.nelson&lt;/a&gt; Could you comment on the impact of this ticket for Cloud?  We&apos;re planning to prioritize based on how much pain this will cause you.&lt;/p&gt;</comment>
                            <comment id="1754479" author="bruce.lucas@10gen.com" created="Mon, 18 Dec 2017 15:34:06 +0000"  >&lt;p&gt;The issue as I understand it is that we already project only the needed fields, but don&apos;t set a batch size so we may have to read a very large amount of oplog data in order to return a batch of 16 MB of very small documents extracted from those large oplog entries. Can we just set a small enough batch size on this query to limit the amount of data that has to be read on the remote end in order to return each batch?&lt;/p&gt;</comment>
                            <comment id="1754458" author="judah.schvimer" created="Mon, 18 Dec 2017 15:17:58 +0000"  >&lt;p&gt;All of this code is used in the new rollback algorithm for 3.8. I expect this problem to exist in 3.6 and continue to exist in 3.8 until addressed. We certainly can project out the needed fields very easily. I&apos;m not sure of the best solution to the socket timeout problem.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="522706">SERVER-34345</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <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>10.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="15141"><![CDATA[v3.6]]></customfieldvalue>
    <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>Mon, 18 Dec 2017 15:17:58 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 33 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-34345'>SERVER-34345</a></s>]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-842</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>
                            5 years, 33 weeks, 1 day 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>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>cailin.nelson@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>greg.mckeon@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@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|htmgkn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hte1sn:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2278">Repl 2018-05-21</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|htm2p3:</customfieldvalue>

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