<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:52:26 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-61444] Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent</title>
                <link>https://jira.mongodb.org/browse/SERVER-61444</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This is because the usages was assuming that if an error occurred while running the function, it will be aborted so retrying can start with a clean slate. However, there is an edge case when commit was successful but the wait for write concern was interrupted. This can cause the function &lt;a href=&quot;https://github.com/mongodb/mongo/blob/52174ffab806e33d77ccb255ddc0d6c8023acc8d/src/mongo/db/s/config/sharding_catalog_manager.cpp#L922&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;to assert&lt;/a&gt; even after successfully committing the changes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1924136">SERVER-61444</key>
            <summary>Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent</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="brett.nawrocki@mongodb.com">Brett Nawrocki</assignee>
                                    <reporter username="randolph@mongodb.com">Randolph Tan</reporter>
                        <labels>
                            <label>sharding-nyc-subteam1</label>
                    </labels>
                <created>Fri, 12 Nov 2021 16:53:54 +0000</created>
                <updated>Sun, 29 Oct 2023 21:46:07 +0000</updated>
                            <resolved>Tue, 8 Feb 2022 19:36:52 +0000</resolved>
                                                    <fixVersion>5.3.0</fixVersion>
                    <fixVersion>5.2.1</fixVersion>
                    <fixVersion>5.0.7</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="4346419" author="xgen-internal-githook" created="Wed, 9 Feb 2022 21:28:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Brett Nawrocki&apos;, &apos;email&apos;: &apos;brett.nawrocki@mongodb.com&apos;, &apos;username&apos;: &apos;brettnawrocki&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61444&quot; title=&quot;Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61444&quot;&gt;&lt;del&gt;SERVER-61444&lt;/del&gt;&lt;/a&gt; Resharding coordinator state transactions now use w:1&lt;/p&gt;

&lt;p&gt; Prior to updating its own in-memory state, the resharding coordinator&lt;br/&gt;
 first runs a transaction to persist that state. There is an edge case&lt;br/&gt;
 where that transaction (if run with &amp;gt;w:1) will commit successfully, but&lt;br/&gt;
 become interrupted while waiting for replication. If that happens, the&lt;br/&gt;
 coordinator will have completed the transaction&apos;s work, but fail to&lt;br/&gt;
 update its own in-memory state, and therefore will redo that work when&lt;br/&gt;
 it retries after handling the exception. Instead of running with the&lt;br/&gt;
 default of w:majority, the transactions for these state transitions&lt;br/&gt;
 have therefore been changed to use w:1 in order to avoid the&lt;br/&gt;
 interruption edge case. An explicit wait for majority is added after&lt;br/&gt;
 the transactions in cases where it must be majority committed before&lt;br/&gt;
 proceeding.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit a710a2bf41118b848976502839590b66993bf512)&lt;br/&gt;
(cherry picked from commit 4e8f9344927e440f93681852e18b33319107f8f1)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8d95e69b997f79cac5e6cfc86686fd4d8cb44b02&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8d95e69b997f79cac5e6cfc86686fd4d8cb44b02&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4346323" author="xgen-internal-githook" created="Wed, 9 Feb 2022 21:08:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Brett Nawrocki&apos;, &apos;email&apos;: &apos;brett.nawrocki@mongodb.com&apos;, &apos;username&apos;: &apos;brettnawrocki&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61444&quot; title=&quot;Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61444&quot;&gt;&lt;del&gt;SERVER-61444&lt;/del&gt;&lt;/a&gt; Resharding coordinator state transactions now use w:1&lt;/p&gt;

&lt;p&gt; Prior to updating its own in-memory state, the resharding coordinator&lt;br/&gt;
 first runs a transaction to persist that state. There is an edge case&lt;br/&gt;
 where that transaction (if run with &amp;gt;w:1) will commit successfully, but&lt;br/&gt;
 become interrupted while waiting for replication. If that happens, the&lt;br/&gt;
 coordinator will have completed the transaction&apos;s work, but fail to&lt;br/&gt;
 update its own in-memory state, and therefore will redo that work when&lt;br/&gt;
 it retries after handling the exception. Instead of running with the&lt;br/&gt;
 default of w:majority, the transactions for these state transitions&lt;br/&gt;
 have therefore been changed to use w:1 in order to avoid the&lt;br/&gt;
 interruption edge case. An explicit wait for majority is added after&lt;br/&gt;
 the transactions in cases where it must be majority committed before&lt;br/&gt;
 proceeding.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit a710a2bf41118b848976502839590b66993bf512)&lt;br/&gt;
(cherry picked from commit 4e8f9344927e440f93681852e18b33319107f8f1)&lt;br/&gt;
Branch: v5.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3aaf548878d03e59b4006d352396060cfebc43f0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3aaf548878d03e59b4006d352396060cfebc43f0&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4343213" author="xgen-internal-githook" created="Tue, 8 Feb 2022 19:14:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Brett Nawrocki&apos;, &apos;email&apos;: &apos;brett.nawrocki@mongodb.com&apos;, &apos;username&apos;: &apos;brettnawrocki&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61444&quot; title=&quot;Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61444&quot;&gt;&lt;del&gt;SERVER-61444&lt;/del&gt;&lt;/a&gt; Fix race in resharding coordinator service unit test&lt;/p&gt;

&lt;p&gt;Changes in the previous commit for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61444&quot; title=&quot;Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61444&quot;&gt;&lt;del&gt;SERVER-61444&lt;/del&gt;&lt;/a&gt; refactored&lt;br/&gt;
resharding_coordinator_service_test.cpp to use functions for behavior&lt;br/&gt;
common between test cases. In doing so, the creation order for the&lt;br/&gt;
ReshardingCoordinatorService and the PauseDuringStateTransitions guard&lt;br/&gt;
was reversed. If the guard is created after the service, it is possible&lt;br/&gt;
that the service progresses through a state transition without the guard&lt;br/&gt;
having observed it. If this happens, when waiting for that state, the&lt;br/&gt;
guard will hang indefinitely instead of returning immediately. The guard&lt;br/&gt;
now is once again created before the service to resolve this issue.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4e8f9344927e440f93681852e18b33319107f8f1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4e8f9344927e440f93681852e18b33319107f8f1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4310919" author="xgen-internal-githook" created="Mon, 24 Jan 2022 23:08:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Brett Nawrocki&apos;, &apos;email&apos;: &apos;brett.nawrocki@mongodb.com&apos;, &apos;username&apos;: &apos;brettnawrocki&apos;}
&lt;p&gt;Message:  &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-61444&quot; title=&quot;Resharding uses of bumpCollectionVersionAndChangeMetadataInTxn are not idempotent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-61444&quot;&gt;&lt;del&gt;SERVER-61444&lt;/del&gt;&lt;/a&gt; Resharding coordinator state transactions now use w:1&lt;/p&gt;

&lt;p&gt; Prior to updating its own in-memory state, the resharding coordinator&lt;br/&gt;
 first runs a transaction to persist that state. There is an edge case&lt;br/&gt;
 where that transaction (if run with &amp;gt;w:1) will commit successfully, but&lt;br/&gt;
 become interrupted while waiting for replication. If that happens, the&lt;br/&gt;
 coordinator will have completed the transaction&apos;s work, but fail to&lt;br/&gt;
 update its own in-memory state, and therefore will redo that work when&lt;br/&gt;
 it retries after handling the exception. Instead of running with the&lt;br/&gt;
 default of w:majority, the transactions for these state transitions&lt;br/&gt;
 have therefore been changed to use w:1 in order to avoid the&lt;br/&gt;
 interruption edge case. An explicit wait for majority is added after&lt;br/&gt;
 the transactions in cases where it must be majority committed before&lt;br/&gt;
 proceeding.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/a710a2bf41118b848976502839590b66993bf512&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a710a2bf41118b848976502839590b66993bf512&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2074554">SERVER-67457</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1950966">SERVER-62072</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>4.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="22676"><![CDATA[v5.2]]></customfieldvalue>
    <customfieldvalue key="21777"><![CDATA[v5.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>Mon, 15 Nov 2021 19:46:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>36.0</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hraf47:</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="5726">Sharding 2022-01-10</customfieldvalue>
    <customfieldvalue id="5727">Sharding 2022-01-24</customfieldvalue>
    <customfieldvalue id="5728">Sharding 2022-02-07</customfieldvalue>
    <customfieldvalue id="5734">Sharding 2022-05-02</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</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|i09r2f:</customfieldvalue>

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