<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:54:07 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-84121] Backup cursor service reports incorrect &apos;ns&apos; field in the backup cursor response.</title>
                <link>https://jira.mongodb.org/browse/SERVER-84121</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;It&apos;s a bug in mongodb code, particularly&#160;&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L57-L59&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this&lt;/a&gt; part of the code. Basically, we don&apos;t use &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L149&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this&lt;/a&gt;&#160;mdb_catalog checkpoint cursor that was opened prior to the&#160;&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L165&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;backup cursor open&lt;/a&gt;; instead, we use a different&#160; mdb_catalog &#160;checkpoint cursor ( &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L59&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;getParsedCatalogEntry()&lt;/a&gt;&#160;opens a new checkpoint cursor), opened after the backup cursor open, to fill in the &apos;ns&apos; field in the backup cursor response . This means that if a checkpoint occurred after&#160;&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L195-L203&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this&lt;/a&gt; BackupCursorOpenConflictWithCheckpoint check, the alternate checkpoint cursor might be operating on a different snapshot than the backup cursor, potentially resulting in incorrect &apos;ns&apos; information in the backup cursor response.&lt;/p&gt;

&lt;p&gt;As a result, this causes selective_backup_restore_e2e.js to inadvertently skip copying files that&apos;s actually part of backup snapshot, resulting in the restore node crash due to missing files.&lt;/p&gt;



&lt;p&gt;=================&lt;br/&gt;
Some code improvements were identified during the BF investigation.&lt;/p&gt;

&lt;p&gt;1) &quot;BackupCursorOpenConflictWithCheckpoint&quot; check currently performs two checks, namely &quot;LastStableRecoveryTimestamp&quot; and &quot;checkpoint id.&quot; It would be beneficial to either enhance the error message or add a debug log message to specify which check failed and provide details about the mismatched checkpoint and recovery timestamp. &lt;/p&gt;

&lt;p&gt;2) Use &lt;a href=&quot;https://github.com/10gen/mongo/blob/4f48791a9a805a0384070ee2d016e35ae7630d1e/src/mongo/db/catalog_raii.h#L475&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ReadSourceScope RAII&lt;/a&gt; instead of explicitly setting the TimestampReadSource &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L147&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/blob/fc0786011b228060817b72685a845eae8acd90a5/src/hot_backups/backup_cursor_service.cpp#L230&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; for better readability. Also, the RAII make sure we abandon the snapshot before we explicitly setting the TimestampReadSource in the recovery unit.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2523174">SERVER-84121</key>
            <summary>Backup cursor service reports incorrect &apos;ns&apos; field in the backup cursor response.</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="wei.hu@mongodb.com">Wei Hu</assignee>
                                    <reporter username="suganthi.mani@mongodb.com">Suganthi Mani</reporter>
                        <labels>
                            <label>storex-shortlist</label>
                    </labels>
                <created>Tue, 12 Dec 2023 21:05:11 +0000</created>
                <updated>Thu, 25 Jan 2024 16:17:31 +0000</updated>
                            <resolved>Thu, 25 Jan 2024 16:17:30 +0000</resolved>
                                                    <fixVersion>8.0.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="6040506" author="xgen-internal-githook" created="Thu, 25 Jan 2024 10:32:58 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Wei Hu&apos;, &apos;email&apos;: &apos;wei.hu@mongodb.com&apos;, &apos;username&apos;: &apos;wh5a&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-84121&quot; title=&quot;Backup cursor service reports incorrect &amp;#39;ns&amp;#39; field in the backup cursor response.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-84121&quot;&gt;&lt;del&gt;SERVER-84121&lt;/del&gt;&lt;/a&gt; BackupCursorService should parse catalog entry from the already opened cursor&lt;/p&gt;

&lt;p&gt;GitOrigin-RevId: 11295651dbc664d562a03ab98295af48a14535f0&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/a21933c71366d3822967cbe82fcd7eddd2bb29dc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/a21933c71366d3822967cbe82fcd7eddd2bb29dc&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="6014849" author="suganthi.mani" created="Tue, 16 Jan 2024 18:41:55 +0000"  >&lt;p&gt;copy-paste of my slack message&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;In production, encountering the incorrect empty value is easy/common, while the possibility of obtaining an incorrect non-empty value is technically feasible but highly unlikely due to the extremely slim chance of a getting into random ID collision by&#160;&lt;a href=&quot;https://github.com/10gen/mongo/blob/4f48791a9a805a0384070ee2d016e35ae7630d1e/src/mongo/db/storage/durable_catalog.cpp#L177&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this&lt;/a&gt;&#160;function.&#160;&lt;/p&gt;

&lt;p&gt;The problematic &apos;ns&apos; field in the backup cursor response is currently only used by the backup team. Atlas dedicated/Serverless backup (CPS manager) does not use this field, but Cloud Manager and Ops Manager (on-prem customers - mongod/agent deployed in customer&apos;s datacenter) use this for selective backup. It&apos;s important to note that Cloud Manager and Ops Manager use yearly release cycles, meaning that even if the issue is addressed in version 7.3, they would have to wait until version 8.0 for the release.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                    </comments>
                <issuelinks>
                            <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>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></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, 22 Jan 2024 18:05:48 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 week, 6 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>wei.hu@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 week, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>suganthi.mani@mongodb.com</customfieldvalue>
            <customfieldvalue>wei.hu@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i34da7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i028m6:</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_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="7852">Execution Team 2024-01-08</customfieldvalue>
    <customfieldvalue id="7995">Execution Team 2024-01-22</customfieldvalue>
    <customfieldvalue id="7996">Execution Team 2024-02-05</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|i33zfj:</customfieldvalue>

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