<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:14:51 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-27329] Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it</title>
                <link>https://jira.mongodb.org/browse/SERVER-27329</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;BackgroundSync::_rollback doesn&apos;t depend on any member state of BackgroundSync.  We should move it into rs_rollback.cpp with the rest of the rollback code and add unit tests for its behavior.&lt;/p&gt;</description>
                <environment></environment>
        <key id="337166">SERVER-27329</key>
            <summary>Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it</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="9">Done</resolution>
                                        <assignee username="benety.goh@mongodb.com">Benety Goh</assignee>
                                    <reporter username="spencer@mongodb.com">Spencer Brody</reporter>
                        <labels>
                    </labels>
                <created>Thu, 8 Dec 2016 00:31:27 +0000</created>
                <updated>Wed, 31 May 2017 18:22:09 +0000</updated>
                            <resolved>Thu, 9 Mar 2017 00:18:53 +0000</resolved>
                                                    <fixVersion>3.4.4</fixVersion>
                    <fixVersion>3.5.5</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1537971" author="xgen-internal-githook" created="Fri, 31 Mar 2017 15:11:17 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; added unit tests for rollback() (rs_rollback.cpp)&lt;/p&gt;

&lt;p&gt;added test case for failing to transition to ROLLBACK&lt;br/&gt;
added test case to verify fatal behavior on unrecoverable rollback errors&lt;br/&gt;
added test case to verify retry behavior on non-unrecoverabe rollback errors&lt;br/&gt;
added test case to verify fatal behavior on shard identity document rollback&lt;br/&gt;
added test case for failing to transition to RECOVERING after returning from&lt;br/&gt;
syncRollback&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 73d3473fb11ff4fbdb404d0c6c409a309ccd7646)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cfa63fc35f0dc0409389cae7c5cc55f453f40dee&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cfa63fc35f0dc0409389cae7c5cc55f453f40dee&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1537970" author="xgen-internal-githook" created="Fri, 31 Mar 2017 15:11:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; moved BackgroundSync::_rollback() to rs_rollback.cpp&lt;/p&gt;

&lt;p&gt;Added optional override for sleepsecs to rollback() for testing.&lt;br/&gt;
Cleaned up dependencies on concrete implementations of OplogInterface&lt;br/&gt;
and RollbackSource in the SCons configuration.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit d44517bc2cfefbc3c1a68626d511f0e2ade559f6)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/420e24e32087c79dac3022dd46539c60c329af54&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/420e24e32087c79dac3022dd46539c60c329af54&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1537969" author="xgen-internal-githook" created="Fri, 31 Mar 2017 15:11:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; cleaned up BackgroundSync::_rollback() argument.&lt;/p&gt;

&lt;p&gt;Moved dependencies on concrete classes and StorageInterace::get() out of _rollback()&lt;br/&gt;
into BackgroundSync::_produce().&lt;/p&gt;

&lt;p&gt;This commit also removes the dependency on StorageInterface::get() from syncRollback().&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 6d40cc3281fcd71d59db3c29c7a0b21ba0eecdc6)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3e5deb8afbbe68846577bc2676bfe5d62f0e6bc7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3e5deb8afbbe68846577bc2676bfe5d62f0e6bc7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1537968" author="xgen-internal-githook" created="Fri, 31 Mar 2017 15:11:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; added insertion operator to MemberState&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 5471f25a04f8f2617a8737617856e3659f33bca9)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/86827cbabc237245fa85e43e965538f2984ed77d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/86827cbabc237245fa85e43e965538f2984ed77d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1519558" author="xgen-internal-githook" created="Thu, 9 Mar 2017 00:18:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; added unit tests for rollback() (rs_rollback.cpp)&lt;/p&gt;

&lt;p&gt;added test case for failing to transition to ROLLBACK&lt;br/&gt;
added test case to verify fatal behavior on unrecoverable rollback errors&lt;br/&gt;
added test case to verify retry behavior on non-unrecoverabe rollback errors&lt;br/&gt;
added test case to verify fatal behavior on shard identity document rollback&lt;br/&gt;
added test case for failing to transition to RECOVERING after returning from&lt;br/&gt;
syncRollback&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/73d3473fb11ff4fbdb404d0c6c409a309ccd7646&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/73d3473fb11ff4fbdb404d0c6c409a309ccd7646&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1519382" author="xgen-internal-githook" created="Wed, 8 Mar 2017 21:17:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; moved BackgroundSync::_rollback() to rs_rollback.cpp&lt;/p&gt;

&lt;p&gt;Added optional override for sleepsecs to rollback() for testing.&lt;br/&gt;
Cleaned up dependencies on concrete implementations of OplogInterface&lt;br/&gt;
and RollbackSource in the SCons configuration.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d44517bc2cfefbc3c1a68626d511f0e2ade559f6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d44517bc2cfefbc3c1a68626d511f0e2ade559f6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1519261" author="xgen-internal-githook" created="Wed, 8 Mar 2017 19:17:38 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; cleaned up BackgroundSync::_rollback() argument.&lt;/p&gt;

&lt;p&gt;Moved dependencies on concrete classes and StorageInterace::get() out of _rollback()&lt;br/&gt;
into BackgroundSync::_produce().&lt;/p&gt;

&lt;p&gt;This commit also removes the dependency on StorageInterface::get() from syncRollback().&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6d40cc3281fcd71d59db3c29c7a0b21ba0eecdc6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6d40cc3281fcd71d59db3c29c7a0b21ba0eecdc6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1519101" author="xgen-internal-githook" created="Wed, 8 Mar 2017 17:29:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27329&quot; title=&quot;Move BackgroundSync::_rollback into rs_rollback.cpp and unit test it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27329&quot;&gt;&lt;del&gt;SERVER-27329&lt;/del&gt;&lt;/a&gt; added insertion operator to MemberState&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5471f25a04f8f2617a8737617856e3659f33bca9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5471f25a04f8f2617a8737617856e3659f33bca9&lt;/a&gt;&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>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12451" key="com.atlassian.jira.plugin.system.customfieldtypes:multiversion">
                        <customfieldname>Backport Completed</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="18098">3.4.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>Tue, 7 Mar 2017 20:56:36 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 45 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</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|hrjp4n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsvw53:</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="1617">Repl 2017-03-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_11861" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>User Summary</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11856"><![CDATA[Not Needed]]></customfieldvalue>

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

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