<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:38:02 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-56002] listIndexes can read partial state from renameCollection</title>
                <link>https://jira.mongodb.org/browse/SERVER-56002</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Essentially, the issue appears to be that listIndexes can read from the DurableCatalog in the middle of a concurrent collection rename (after the original target was dropped, but before the source collection is renamed). This looks to be possible because the listIndexes can &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d332c02c343178691d357d31d7a776d5f3dbb68d/src/mongo/db/storage/durable_catalog_impl.cpp#L594-L602&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;read from the DurableCatalog using the same catalogId&lt;/a&gt; that the collection rename &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d332c02c343178691d357d31d7a776d5f3dbb68d/src/mongo/db/storage/durable_catalog_impl.cpp#L750&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;removes from the DurableCatalog&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Some ideas for how to fix this include making listIndexes no longer lock free as well as reimplementing listIndexes to use the IndexCatalog instead of the DurableCatalog.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1676636">SERVER-56002</key>
            <summary>listIndexes can read partial state from renameCollection</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="henrik.edin@mongodb.com">Henrik Edin</assignee>
                                    <reporter username="mihai.andrei@mongodb.com">Mihai Andrei</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Apr 2021 18:00:06 +0000</created>
                <updated>Sun, 29 Oct 2023 21:55:04 +0000</updated>
                            <resolved>Thu, 20 May 2021 20:26:40 +0000</resolved>
                                                    <fixVersion>5.0.0-rc0</fixVersion>
                    <fixVersion>5.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="4108065" author="JIRAUSER1259052" created="Wed, 6 Oct 2021 18:55:56 +0000"  >&lt;p&gt;Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it&#8217;s been triggered. For more active release information, please keep an eye on #server-release. Thank you!&lt;/p&gt;</comment>
                            <comment id="3817678" author="xgen-internal-githook" created="Mon, 24 May 2021 13:27:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56002&quot; title=&quot;listIndexes can read partial state from renameCollection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56002&quot;&gt;&lt;del&gt;SERVER-56002&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56023&quot; title=&quot;listCollections can return empty metadata for a collection which has been concurrently dropped&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56023&quot;&gt;&lt;del&gt;SERVER-56023&lt;/del&gt;&lt;/a&gt; Store Collection metadata in the Collection and reply on the copy-on-write machinery to keep it in sync with the durable catalog.&lt;/p&gt;

&lt;p&gt;All updates to the metadata needs to happen through the Collection, moved interfaces from the DurableCatalog to the Collection.&lt;br/&gt;
Removed back pointer to Collection in IndexCatalogEntryImpl, interfaces now correctly take a const or non-const Collection. This should make its iterface const-correct to avoid making bugs where the copy-on-write system for Collections are bypassed.&lt;/p&gt;

&lt;p&gt;Multikey handle is special as it needs to happen without exclusive access to the Collection. Implemented isolation for the Collection metadata when multikey is changed. It handles multi-doc transactions and is only commited to the Collection instance after the write to the durable catalog successfully commits.&lt;/p&gt;

&lt;p&gt;listCollections and listIndexes can now safetly read the metadata cache without needing to read from the durable catalog making them safe to do without Collection level locks.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 11de948b0c50df7d12de09ae0f01e791fc5d70d7)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/50547a878aaa67722f69c05b05a35236f8f0def9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/50547a878aaa67722f69c05b05a35236f8f0def9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3817676" author="xgen-internal-githook" created="Mon, 24 May 2021 13:27:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56002&quot; title=&quot;listIndexes can read partial state from renameCollection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56002&quot;&gt;&lt;del&gt;SERVER-56002&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56023&quot; title=&quot;listCollections can return empty metadata for a collection which has been concurrently dropped&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56023&quot;&gt;&lt;del&gt;SERVER-56023&lt;/del&gt;&lt;/a&gt; Store Collection metadata in the Collection and reply on the copy-on-write machinery to keep it in sync with the durable catalog.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 15e97c021b4e1feba110f31a563076980794d0a5)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/0637bb99c0e672df3f0710a970ae1bb2aad0a0ed&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/0637bb99c0e672df3f0710a970ae1bb2aad0a0ed&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3796979" author="xgen-internal-githook" created="Thu, 20 May 2021 19:19:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56002&quot; title=&quot;listIndexes can read partial state from renameCollection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56002&quot;&gt;&lt;del&gt;SERVER-56002&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56023&quot; title=&quot;listCollections can return empty metadata for a collection which has been concurrently dropped&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56023&quot;&gt;&lt;del&gt;SERVER-56023&lt;/del&gt;&lt;/a&gt; Store Collection metadata in the Collection and reply on the copy-on-write machinery to keep it in sync with the durable catalog.&lt;/p&gt;

&lt;p&gt;All updates to the metadata needs to happen through the Collection, moved interfaces from the DurableCatalog to the Collection.&lt;br/&gt;
Removed back pointer to Collection in IndexCatalogEntryImpl, interfaces now correctly take a const or non-const Collection. This should make its iterface const-correct to avoid making bugs where the copy-on-write system for Collections are bypassed.&lt;/p&gt;

&lt;p&gt;Multikey handle is special as it needs to happen without exclusive access to the Collection. Implemented isolation for the Collection metadata when multikey is changed. It handles multi-doc transactions and is only commited to the Collection instance after the write to the durable catalog successfully commits.&lt;/p&gt;

&lt;p&gt;listCollections and listIndexes can now safetly read the metadata cache without needing to read from the durable catalog making them safe to do without Collection level locks.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/11de948b0c50df7d12de09ae0f01e791fc5d70d7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/11de948b0c50df7d12de09ae0f01e791fc5d70d7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3796976" author="xgen-internal-githook" created="Thu, 20 May 2021 19:18:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Henrik Edin&apos;, &apos;email&apos;: &apos;henrik.edin@mongodb.com&apos;, &apos;username&apos;: &apos;henrikedin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56002&quot; title=&quot;listIndexes can read partial state from renameCollection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56002&quot;&gt;&lt;del&gt;SERVER-56002&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56023&quot; title=&quot;listCollections can return empty metadata for a collection which has been concurrently dropped&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56023&quot;&gt;&lt;del&gt;SERVER-56023&lt;/del&gt;&lt;/a&gt; Store Collection metadata in the Collection and reply on the copy-on-write machinery to keep it in sync with the durable catalog.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/15e97c021b4e1feba110f31a563076980794d0a5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/15e97c021b4e1feba110f31a563076980794d0a5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3759742" author="james.wahlin@10gen.com" created="Thu, 6 May 2021 20:11:01 +0000"  >&lt;p&gt;Requesting 4.9 backport as we had a BF on that branch that we believe is caused by this issue. &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">
                                        <issuelink>
            <issuekey id="1537235">SERVER-52713</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1659128">SERVER-55519</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1711537">SERVER-56877</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1736287">SERVER-57083</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1764965">SERVER-57324</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1788169">SERVER-57775</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1743611">SERVER-57127</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1659128">SERVER-55519</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1677707">SERVER-56023</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <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>Thu, 6 May 2021 20:11:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 18 weeks 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, 18 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>158.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>henrik.edin@mongodb.com</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
            <customfieldvalue>mihai.andrei@mongodb.com</customfieldvalue>
            <customfieldvalue>vivian.ge@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hz475b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyp8dj:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="4828">Execution Team 2021-05-17</customfieldvalue>
    <customfieldvalue id="4878">Execution Team 2021-05-31</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|hz3tef:</customfieldvalue>

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