<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:53:48 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-40024] Rename collection on a secondary can set the collection minimumVisibleSnapshot timestamp backwards in time after a background index build&apos;s ghost commit cluster time timestamp</title>
                <link>https://jira.mongodb.org/browse/SERVER-40024</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;AutoGetCollection &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d989f45b6f9a802e3d4fe5c4cb34b5ddc28ed4eb/src/mongo/db/catalog_raii.cpp#L119-L126&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;will throw&lt;/a&gt; if a caller tries to access the collection at a point-in-time earlier than the min visible timestamp. Because renameCollection sets the min visible timestamp back in time, callers can now access the collection at an earlier time than an index build completed. This can hit the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/0f2b2a4654df2eaaa63d6b39d8320d0c68471998/src/mongo/db/catalog/index_catalog_impl.cpp#L975-L995&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;DEV (debug only) block in IndexCatalog::numIndexesReady&lt;/a&gt; and invariant; or allow callers that expect an index build to be complete to find no ready index because we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d989f45b6f9a802e3d4fe5c4cb34b5ddc28ed4eb/src/mongo/db/catalog/index_catalog.cpp#L69-L76&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;filter out ready indexes based on commit timestamp&lt;/a&gt;, which can fail our testing that primaries and secondaries have the same number of indexes.&lt;/p&gt;</description>
                <environment></environment>
        <key id="712610">SERVER-40024</key>
            <summary>Rename collection on a secondary can set the collection minimumVisibleSnapshot timestamp backwards in time after a background index build&apos;s ghost commit cluster time timestamp</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="dianna.hohensee@mongodb.com">Dianna Hohensee</assignee>
                                    <reporter username="dianna.hohensee@mongodb.com">Dianna Hohensee</reporter>
                        <labels>
                    </labels>
                <created>Thu, 7 Mar 2019 18:17:09 +0000</created>
                <updated>Sun, 29 Oct 2023 22:23:10 +0000</updated>
                            <resolved>Tue, 19 Mar 2019 14:41:23 +0000</resolved>
                                                    <fixVersion>4.0.8</fixVersion>
                    <fixVersion>4.1.10</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2242253" author="dianna.hohensee" created="Fri, 10 May 2019 15:24:23 +0000"  >&lt;p&gt;So I realized I wasn&apos;t quite right about no versioning in the index catalog code. If you call&#160;IndexCatalogImpl::findIndexByName, then it will get down to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/204352fb65123323bb50800741b1b322fe648f15/src/mongo/db/catalog/index_catalog.cpp#L69-L76&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this code&lt;/a&gt;, which means that findIndexByName will only look through the indexes that were ready at the opCtx&apos;s snapshot time for matches.&lt;/p&gt;

&lt;p&gt;In case that&apos;s relevant. I&apos;d guess you&apos;d have to change the opCtx&apos;s PIT read timestamp, or recovery unit, or change opCtxs, for it to be relevant. But the view can change under a lock. &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=james.wahlin&quot; class=&quot;user-hover&quot; rel=&quot;james.wahlin&quot;&gt;james.wahlin&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2193724" author="xgen-internal-githook" created="Wed, 27 Mar 2019 20:30:39 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dianna Hohensee&apos;, &apos;username&apos;: &apos;DiannaHohensee&apos;, &apos;email&apos;: &apos;dianna.hohensee@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40024&quot; title=&quot;Rename collection on a secondary can set the collection minimumVisibleSnapshot timestamp backwards in time after a background index build&amp;#39;s ghost commit cluster time timestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40024&quot;&gt;&lt;del&gt;SERVER-40024&lt;/del&gt;&lt;/a&gt; Only allow collection/index minimum visible snapshots to be moved forward in time&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 751ac6e4692ebe5a5026d96596ca4cffd40f8ffa)&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4b859c936a6ba27506d11a2879b75b4bf6bfa876&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4b859c936a6ba27506d11a2879b75b4bf6bfa876&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2184832" author="xgen-internal-githook" created="Tue, 19 Mar 2019 14:41:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dianna Hohensee&apos;, &apos;username&apos;: &apos;DiannaHohensee&apos;, &apos;email&apos;: &apos;dianna.hohensee@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-40024&quot; title=&quot;Rename collection on a secondary can set the collection minimumVisibleSnapshot timestamp backwards in time after a background index build&amp;#39;s ghost commit cluster time timestamp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-40024&quot;&gt;&lt;del&gt;SERVER-40024&lt;/del&gt;&lt;/a&gt; Only allow collection/index minimum visible snapshots to be moved forward in time&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/751ac6e4692ebe5a5026d96596ca4cffd40f8ffa&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/751ac6e4692ebe5a5026d96596ca4cffd40f8ffa&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2174959" author="daniel.gottlieb@10gen.com" created="Thu, 7 Mar 2019 20:15:23 +0000"  >&lt;p&gt;I think having &lt;tt&gt;setMinimumVisibleSnapshot&lt;/tt&gt; only advance is the right call.&lt;/p&gt;</comment>
                            <comment id="2174912" author="dianna.hohensee" created="Thu, 7 Mar 2019 19:46:02 +0000"  >&lt;p&gt;I think if we made the setMinimumVisibleSnapshot() functions only ever increase the timestamp, i.e. skip setting any timestamps that are less than the current, then a lot of the test failures would likely stop. At least if dbhash&apos;s collStats cmd, and whatever else, retries on ErrorCodes::SnapshotUnavailable errors (what &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d989f45b6f9a802e3d4fe5c4cb34b5ddc28ed4eb/src/mongo/db/catalog_raii.cpp#L119-L126&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;AutoGetCollection appears to throw&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I don&apos;t know what would happen if a user established an index using query, say, after or at the index commit timestamp X, but then a dropIndexes gets replicated that commits back in time at timestamp Y, where Y &amp;lt; X.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;, you both worked on / reviewed the ghost timestamping code, and so are more familiar with what&apos;s going on. Any ideas?&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="712288">SERVER-40011</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="712288">SERVER-40011</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>5.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="15640"><![CDATA[v4.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 Mar 2019 20:15:23 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 39 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_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>
                            4 years, 39 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>63.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>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>dianna.hohensee@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|huq3dj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr7hhr:</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="2828">Storage NYC 2019-03-25</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|huppmv:</customfieldvalue>

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