<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:43:16 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-36494] Prevent oplog truncation of oplog entries needed for startup recovery</title>
                <link>https://jira.mongodb.org/browse/SERVER-36494</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description></description>
                <environment></environment>
        <key id="584990">SERVER-36494</key>
            <summary>Prevent oplog truncation of oplog entries needed for startup recovery</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                            <label>prepare_durability</label>
                    </labels>
                <created>Tue, 7 Aug 2018 16:24:36 +0000</created>
                <updated>Sun, 29 Oct 2023 22:29:12 +0000</updated>
                            <resolved>Mon, 8 Apr 2019 19:27:18 +0000</resolved>
                                                    <fixVersion>4.1.10</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="3996448" author="JIRAUSER1258656" created="Wed, 11 Aug 2021 23:30:14 +0000"  >&lt;p&gt;No worries! Appreciate you getting back to me regardless.&lt;/p&gt;</comment>
                            <comment id="3996436" author="jesse" created="Wed, 11 Aug 2021 23:25:21 +0000"  >&lt;p&gt;I&apos;m sorry Nate, I&apos;ve utterly forgotten the details of this patch and I can&apos;t guess whether it&apos;s backportable.&lt;/p&gt;</comment>
                            <comment id="3996187" author="JIRAUSER1258656" created="Wed, 11 Aug 2021 20:53:38 +0000"  >&lt;p&gt;Hi Jesse,&lt;/p&gt;

&lt;p&gt;It&#8217;s been a while since this commit went out but we were curious if the change to the replSetReconfig locking was made possible by this change or others in the 4.1 release?&lt;br/&gt;
Or was this just a long standing setting that was overly strict?&lt;/p&gt;

&lt;p&gt;We have diagnosed a latency increase which we think is due to the need for an X lock by replSetReconfig and are evaluating if we can backport the locking change portion of your patch to our v3.6 fork.&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f8f872e029ba3b1f32d8499c912756d48dc1a03b#diff-d435e02c922fe2ccfa8a05ab1a09a93a6519babc71b15472bca3c9eb7e6e2b4fR386&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f8f872e029ba3b1f32d8499c912756d48dc1a03b#diff-d435e02c922fe2ccfa8a05ab1a09a93a6519babc71b15472bca3c9eb7e6e2b4fR386&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="2205658" author="jesse" created="Mon, 8 Apr 2019 19:28:31 +0000"  >&lt;p&gt;Had to revert due to a merge mistake, fixed it and pushed again.&lt;/p&gt;</comment>
                            <comment id="2205654" author="xgen-internal-githook" created="Mon, 8 Apr 2019 19:26:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36494&quot; title=&quot;Prevent oplog truncation of oplog entries needed for startup recovery&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36494&quot;&gt;&lt;del&gt;SERVER-36494&lt;/del&gt;&lt;/a&gt; Test that active txn entries aren&apos;t truncated&lt;/p&gt;

&lt;p&gt;Add tests for initial sync, recovery, and the inMemory storage engine.&lt;/p&gt;

&lt;p&gt;Also, avoid taking a global X lock in replSetReconfig, we only need IX.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4cd74465dc857148e897654d31195226ef665e70&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4cd74465dc857148e897654d31195226ef665e70&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2205543" author="xgen-internal-githook" created="Mon, 8 Apr 2019 18:19:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36494&quot; title=&quot;Prevent oplog truncation of oplog entries needed for startup recovery&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36494&quot;&gt;&lt;del&gt;SERVER-36494&lt;/del&gt;&lt;/a&gt; Test that active txn entries aren&apos;t truncated&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit f8f872e029ba3b1f32d8499c912756d48dc1a03b.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/02a87ee5b1942d24e1d7a20502c79d36218929fe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/02a87ee5b1942d24e1d7a20502c79d36218929fe&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2205507" author="jesse" created="Mon, 8 Apr 2019 18:03:55 +0000"  >&lt;p&gt;My new test recovery_preserves_active_txns.js fails on master; reverting and investigating.&lt;/p&gt;</comment>
                            <comment id="2205266" author="xgen-internal-githook" created="Mon, 8 Apr 2019 15:47:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;, &apos;email&apos;: &apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36494&quot; title=&quot;Prevent oplog truncation of oplog entries needed for startup recovery&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36494&quot;&gt;&lt;del&gt;SERVER-36494&lt;/del&gt;&lt;/a&gt; Test that active txn entries aren&apos;t truncated&lt;/p&gt;

&lt;p&gt;Add tests for initial sync, recovery, and the inMemory storage engine.&lt;/p&gt;

&lt;p&gt;Also, avoid taking a global X lock in replSetReconfig, we only need IX.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f8f872e029ba3b1f32d8499c912756d48dc1a03b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f8f872e029ba3b1f32d8499c912756d48dc1a03b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2200673" author="jesse" created="Wed, 3 Apr 2019 15:57:09 +0000"  >&lt;p&gt;Acknowledged.&lt;/p&gt;</comment>
                            <comment id="2200247" author="judah.schvimer" created="Wed, 3 Apr 2019 11:34:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jesse&quot; class=&quot;user-hover&quot; rel=&quot;jesse&quot;&gt;jesse&lt;/a&gt;, I&apos;ve filed &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40457&quot; title=&quot;test that secondaries roll over their oplogs when they exceed oplogSize&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40457&quot;&gt;&lt;del&gt;SERVER-40457&lt;/del&gt;&lt;/a&gt; for the remainder of the work. PTAL that it&apos;s complete and feel free to close this when your CR is pushed.&lt;/p&gt;</comment>
                            <comment id="2198444" author="jesse" created="Mon, 1 Apr 2019 21:37:14 +0000"  >&lt;p&gt;After my next CR, the remaining work is to test in general that secondaries roll over their oplogs when they exceed oplogSize. Could add an assert to the bottom of initial_sync_oplog_rollover.js that checks the secondary has deleted the first oplog entry by the time the test is ending.&lt;/p&gt;</comment>
                            <comment id="2193404" author="judah.schvimer" created="Wed, 27 Mar 2019 17:02:48 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jesse&quot; class=&quot;user-hover&quot; rel=&quot;jesse&quot;&gt;jesse&lt;/a&gt;, can you please comment on if there is further work (or further investigation to determine if further work is necessary) to complete so that necessary oplog entries are not truncated...&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;during initial sync?&lt;/li&gt;
	&lt;li&gt;during (not just after) replication recovery?&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Also to confirm, can in-memory nodes still truncate their oplogs in the absence of transactions? I just want to make sure that is behavior we haven&apos;t broken. I&apos;ll move the rest of the in-memory discussion to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38165&quot; title=&quot;Test that prepared transactions work with an in-memory secondary&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38165&quot;&gt;&lt;del&gt;SERVER-38165&lt;/del&gt;&lt;/a&gt;. CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2191046" author="greg.mckeon" created="Mon, 25 Mar 2019 20:03:23 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;, assigning back to you and unassigning from Jesse.&lt;/p&gt;</comment>
                            <comment id="2186206" author="judah.schvimer" created="Wed, 20 Mar 2019 15:21:02 +0000"  >&lt;p&gt;Another open question is if this works for in-memory nodes. They currently don&apos;t support transactions, but &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38165&quot; title=&quot;Test that prepared transactions work with an in-memory secondary&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38165&quot;&gt;&lt;del&gt;SERVER-38165&lt;/del&gt;&lt;/a&gt; is investigating what we need to do there. I don&apos;t think this ticket needs to make sure in-memory nodes have sufficient oplog for recovery, but we should file a new ticket to make that work if it doesn&apos;t already work as part of this ticket.&lt;/p&gt;</comment>
                            <comment id="2175837" author="judah.schvimer" created="Fri, 8 Mar 2019 16:04:20 +0000"  >&lt;p&gt;We also need to make sure the above mechanism prevents us from truncating incorrectly during replication recovery. (I think this will happen with no extra work).&lt;/p&gt;</comment>
                            <comment id="2174927" author="judah.schvimer" created="Thu, 7 Mar 2019 19:55:39 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jesse&quot; class=&quot;user-hover&quot; rel=&quot;jesse&quot;&gt;jesse&lt;/a&gt;, does this plan currently prevent truncation of oplog entries required for recovery that would be truncated during initial sync?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="593010">SERVER-36811</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="700955">SERVER-39679</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="728848">SERVER-40457</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="698917">SERVER-39627</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="591247">SERVER-36772</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="634791">SERVER-38165</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="700970">SERVER-39680</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="711030">SERVER-39989</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="411167">SERVER-30460</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16.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_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>Wed, 20 Feb 2019 14:03:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 26 weeks 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-36811'>SERVER-36811</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-39679'>SERVER-39679</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-1032</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>
                            2 years, 26 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu2vz3:</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="2605">Repl 2018-11-19</customfieldvalue>
    <customfieldvalue id="2783">Repl 2019-02-11</customfieldvalue>
    <customfieldvalue id="2784">Repl 2019-02-25</customfieldvalue>
    <customfieldvalue id="2822">Repl 2019-03-11</customfieldvalue>
    <customfieldvalue id="2823">Repl 2019-03-25</customfieldvalue>
    <customfieldvalue id="2859">Service Arch 2019-04-22</customfieldvalue>
    <customfieldvalue id="2896">Repl 2019-04-08</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|hu4jq7:</customfieldvalue>

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