<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:02: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-65328] ShardingCatalogManager::commitChunkMigration() should reject requests that specifies chunk boundaries with outdated shard key patterns</title>
                <link>https://jira.mongodb.org/browse/SERVER-65328</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The changes introduced with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-64148&quot; title=&quot;Atomic `split+move` when moveRange invoked with only one bound&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-64148&quot;&gt;&lt;del&gt;SERVER-64148&lt;/del&gt;&lt;/a&gt; modified &lt;a href=&quot;https://github.com/mongodb/mongo/blob/48f3e1ffc2f89353bb4772f10f92b1ec33bc0829/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp#L171-L177&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the query&lt;/a&gt; used by  &lt;tt&gt;ShardingCatalogManager::commitChunkMigration()&lt;/tt&gt; to update the entries in  &lt;tt&gt;config.chunks&lt;/tt&gt; in a way that requests based on stale shard key patterns are no longer rejected.&lt;/p&gt;

&lt;p&gt;This behaviour may lead to a state of data corruption that prevents new migrations from being performed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2019296">SERVER-65328</key>
            <summary>ShardingCatalogManager::commitChunkMigration() should reject requests that specifies chunk boundaries with outdated shard key patterns</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="pierlauro.sciarelli@mongodb.com">Pierlauro Sciarelli</assignee>
                                    <reporter username="paolo.polato@mongodb.com">Paolo Polato</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 Apr 2022 14:12:14 +0000</created>
                <updated>Sun, 29 Oct 2023 21:39:52 +0000</updated>
                            <resolved>Thu, 14 Apr 2022 08:42:08 +0000</resolved>
                                                    <fixVersion>6.0.0-rc1</fixVersion>
                    <fixVersion>6.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="4485147" author="xgen-internal-githook" created="Fri, 15 Apr 2022 08:17:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pierlauro Sciarelli&apos;, &apos;email&apos;: &apos;pierlauro.sciarelli@mongodb.com&apos;, &apos;username&apos;: &apos;pierlauro&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-65328&quot; title=&quot;ShardingCatalogManager::commitChunkMigration() should reject requests that specifies chunk boundaries with outdated shard key patterns&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-65328&quot;&gt;&lt;del&gt;SERVER-65328&lt;/del&gt;&lt;/a&gt; MigrationSourceManager must reject bounds with outdated shard key patterns&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1d3a714051b9e50fe48bf6e53ed9d063ee13caed)&lt;br/&gt;
Branch: v6.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2fd48fab86439f6e29dedd6042cab1a6e7f3a1ff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2fd48fab86439f6e29dedd6042cab1a6e7f3a1ff&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4482537" author="xgen-internal-githook" created="Thu, 14 Apr 2022 08:36:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pierlauro Sciarelli&apos;, &apos;email&apos;: &apos;pierlauro.sciarelli@mongodb.com&apos;, &apos;username&apos;: &apos;pierlauro&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-65328&quot; title=&quot;ShardingCatalogManager::commitChunkMigration() should reject requests that specifies chunk boundaries with outdated shard key patterns&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-65328&quot;&gt;&lt;del&gt;SERVER-65328&lt;/del&gt;&lt;/a&gt; MigrationSourceManager must reject bounds with outdated shard key patterns&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1d3a714051b9e50fe48bf6e53ed9d063ee13caed&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1d3a714051b9e50fe48bf6e53ed9d063ee13caed&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4464496" author="allison.easton" created="Thu, 7 Apr 2022 15:06:59 +0000"  >&lt;p&gt;To add to the description, the big difference introduced in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-64148&quot; title=&quot;Atomic `split+move` when moveRange invoked with only one bound&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-64148&quot;&gt;&lt;del&gt;SERVER-64148&lt;/del&gt;&lt;/a&gt; is how the new chunk is being created. Prior to these changes, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bd2abb1b3c22d071e7138b7e3edeeb5943690e5c/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp#L998&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the chunk bounds are being set to the values read from the config server&lt;/a&gt;. After the changes, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1d14f3fa16533fe806027ab79e1caec4acd7b5ae/src/mongo/db/s/config/sharding_catalog_manager_chunk_operations.cpp#L1085-L1087&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;they are being set to the chunk that is passed in during the migration&lt;/a&gt;. So even though the query could have found a chunk when it possibly shouldn&apos;t have before, it didn&apos;t cause issues because the bounds were still being set correctly.&lt;/p&gt;

&lt;p&gt;Edit: having finally reproduced the issue with some logging, we have a better understanding of what is happening. First, a refine shard key happens successfully. Then, a merge happens, which updates the keys correctly. Then, a migration is issued from defragmentation with the old bounds and old shard key. This finds the chunk that was merged because the query is not using less than or equal to and greater than or equal to. The commit then takes the move range path, splitting the chunk and creating chunks on either side of it also with the unrefined shard key. This is how we end up with three chunks, one with the max wrong, one with both keys wrong, and one with the wrong min.&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>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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="23470"><![CDATA[v6.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>Thu, 7 Apr 2022 15:06:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 42 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_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>
                            1 year, 42 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>151.0</customfieldvalue>

                        </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>allison.easton@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>paolo.polato@mongodb.com</customfieldvalue>
            <customfieldvalue>pierlauro.sciarelli@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0qaen:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i099q4:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="5818">Sharding EMEA 2022-04-18</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|i0pwjz:</customfieldvalue>

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