<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:56:56 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-21307] Replicated DDL (catalog) operation during background index build blocks reads/writes</title>
                <link>https://jira.mongodb.org/browse/SERVER-21307</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;A replicated dropIndexes operation, performed on a collection that is currently performing a background index build, will block replication and all read operations to that member for the duration of the index build.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Perform a background index build.&lt;/li&gt;
	&lt;li&gt;Once completed on the primary and once the background build has started on a secondary, run dropIndexes against the primary.&lt;/li&gt;
	&lt;li&gt;The dropIndexes being a quick operation will replicate to the secondary while the index build is in progress (for any long running index build).&lt;/li&gt;
	&lt;li&gt;Once the secondary receives the dropIndexes via replication, reads will be blocked across all namespaces and replication will halt. This persists until the background index build completes and the dropIndexes is allowed to execute.&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="237967">SERVER-21307</key>
            <summary>Replicated DDL (catalog) operation during background index build blocks reads/writes</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="9">Done</resolution>
                                        <assignee username="benety.goh@mongodb.com">Benety Goh</assignee>
                                    <reporter username="james.wahlin@mongodb.com">James Wahlin</reporter>
                        <labels>
                    </labels>
                <created>Thu, 5 Nov 2015 18:13:58 +0000</created>
                <updated>Mon, 20 Mar 2023 13:19:44 +0000</updated>
                            <resolved>Thu, 27 Feb 2020 20:30:47 +0000</resolved>
                                    <version>3.0.7</version>
                    <version>3.2.0-rc2</version>
                                    <fixVersion>4.3.4</fixVersion>
                                    <component>Replication</component>
                                        <votes>16</votes>
                                    <watches>55</watches>
                                                                                                                <comments>
                            <comment id="2915076" author="benety.goh" created="Thu, 27 Feb 2020 20:30:47 +0000"  >&lt;p&gt;Underlying issues fixed in other SERVER tickets.&lt;/p&gt;

&lt;p&gt;The test referenced in git commit has been updated to match the user commands in the reproduction script attached to this ticket.&lt;/p&gt;</comment>
                            <comment id="2915053" author="xgen-internal-githook" created="Thu, 27 Feb 2020 20:21:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Benety Goh&apos;, &apos;username&apos;: &apos;benety&apos;, &apos;email&apos;: &apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-21307&quot; title=&quot;Replicated DDL (catalog) operation during background index build blocks reads/writes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-21307&quot;&gt;&lt;del&gt;SERVER-21307&lt;/del&gt;&lt;/a&gt; add secondary reads to dropIndexes and index builds test&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5e57c0b0f7505035c37179d100fdd43ef2b6cc36&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5e57c0b0f7505035c37179d100fdd43ef2b6cc36&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2908263" author="benety.goh" created="Tue, 25 Feb 2020 20:19:45 +0000"  >&lt;p&gt;The scenario described in the attached &lt;a href=&quot;https://jira.mongodb.org/secure/attachment/97270/repro.js&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;repro.js&lt;/a&gt; is no longer applicable:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;var ps = startParallelShell...&lt;/b&gt; The reads on the secondary will no longer be blocked due to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34192&quot; title=&quot;Secondary reads during batch applications&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34192&quot;&gt;&lt;del&gt;SERVER-34192&lt;/del&gt;&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;pcol.dropIndexes();&lt;/b&gt; This will abort the index build and complete successfully without any blocking replication on the secondary. See &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37726&quot; title=&quot;Make dropIndexes abort in-progress index builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37726&quot;&gt;&lt;del&gt;SERVER-37726&lt;/del&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2908132" author="benety.goh" created="Tue, 25 Feb 2020 19:44:21 +0000"  >&lt;p&gt;With &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-43692&quot; title=&quot;enable two phase index builds by default&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-43692&quot;&gt;&lt;del&gt;SERVER-43692&lt;/del&gt;&lt;/a&gt;, by replicating two oplog entries (&lt;b&gt;startIndexBuild&lt;/b&gt; and &lt;b&gt;commitIndexBuild/abortIndexBuild&lt;/b&gt;), we no longer have to wait for the index build to complete on the primary before starting it on the secondary.&lt;/p&gt;

&lt;p&gt;This change in replica set semantics for index builds directly supports the work in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37726&quot; title=&quot;Make dropIndexes abort in-progress index builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37726&quot;&gt;&lt;del&gt;SERVER-37726&lt;/del&gt;&lt;/a&gt; which allows the &lt;b&gt;dropIndexes&lt;/b&gt; command to interrupt and abort in-progress index builds across the replica set.&lt;/p&gt;</comment>
                            <comment id="1874926" author="milkie" created="Thu, 26 Apr 2018 14:43:18 +0000"  >&lt;p&gt;After the completion of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34192&quot; title=&quot;Secondary reads during batch applications&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34192&quot;&gt;&lt;del&gt;SERVER-34192&lt;/del&gt;&lt;/a&gt;, this problem only affects replication writes on secondaries; reads are no longer affected.&lt;/p&gt;</comment>
                            <comment id="1745834" author="asya" created="Thu, 7 Dec 2017 19:13:43 +0000"  >&lt;p&gt;We are working on a larger project to improve handling of index builds/drops on all nodes which should resolve this issue.&lt;/p&gt;
</comment>
                            <comment id="1699392" author="milkie" created="Mon, 16 Oct 2017 06:25:43 +0000"  >&lt;p&gt;Some metadata operations require no background index builds in any collection in the database, while others only require no background index build in the collection of the operation.&lt;br/&gt;
The dropIndex command checks for in-progress background index builds in the same collection only.&lt;/p&gt;</comment>
                            <comment id="1697419" author="chuy@mixmax.com" created="Thu, 12 Oct 2017 17:19:52 +0000"  >&lt;p&gt;Does this problem only happen when running an index build and dropping an index (or any other metadata update as per above) in the same collection? Or would this affect any simultaneous createIndex/dropIndex regardless of the collection?&lt;/p&gt;</comment>
                            <comment id="1080801" author="milkie" created="Thu, 5 Nov 2015 18:24:19 +0000"  >&lt;p&gt;I believe this is actually true for any metadata operation that affects the index build, not just dropIndexes.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="312365">SERVER-25841</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="474129">SERVER-32398</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="534517">SERVER-34686</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="815348">SERVER-41933</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="444802">SERVER-31546</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="623458">SERVER-37726</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="461076">SERVER-32033</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="518833">SERVER-34192</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="524136">SERVER-34383</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="623458">SERVER-37726</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="943441">SERVER-43692</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1831818">DOCS-14687</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="97270" name="repro.js" size="2343" author="james.wahlin@mongodb.com" created="Thu, 5 Nov 2015 18:16:49 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9.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_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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[500A000000XzMBZIA3, 500A000000UabrWIAR, 500A000000aR7H4IAK, 500A000000bVkJjIAK, 500A000000bylvIIAQ, 5002K00000dEmhIQAS, 5002K00000dOnJhQAK, 5002K00000e9lz3QAA, 5002K00000e8pk4QAA, 5002K00000dVUzwQAG, 5002K00000ekOYzQAM, 5002K00000eksaDQAQ, 5002K00000f0FYIQA2, 5002K00000g5ekkQAA, 5002K00000gjz6hQAA, 5002K00000gl9EOQAY, 5002K00000hPzCgQAK, 5002K00000iMvoaQAC, 5002K00000jb4sBQAQ, 5002K00000llQbbQAE, 5002K00000llAq3QAE, 5002K00000mpv1FQAQ, 5002K00000mqyAZQAY, 5002K00000mrRpKQAU, 5002K00000nBtKCQA0, 5002K00000nEBrDQAW, 5002K00000nmyR3QAI, 5002K00000no0iJQAQ, 5002K00000npPMLQA2, 5002K00000obMYbQAM, 5002K00000oc0EgQAI, 5002K00000ocdnkQAA, 5002K00000pDbM8QAK, 5002K00000qeOJsQAM, 5002K00000qfA8VQAU, 5002K00000qfJREQA2, 5002K00000qg3BUQAY, 5002K00000r3L4cQAE, 5002K00000rzCY8QAM, 5002K00000s16NXQAY, 5002K00000sapl9QAA, 5002K00000tVgaKQAS, 5002K00000uDLfCQAW, 5002K00000uFA1jQAG, 5002K00000uxYuEQAU, 5002K00000uzQVtQAM, 5002K00000uzI6pQAE, 5002K00000v0ulKQAQ, 5002K00000vgWqmQAE, 5002K00000wZbURQA0, 5002K00000xkZGCQA2, 5002K00000xlHKpQAM, 5002K00000xl6a2QAA, 5002K00000xlpw0QAA, 5002K00000yUDNEQA4, 5002K00000zCk0SQAS, 5002K0000130ZhhQAE, 5006R00001lAvGEQA0, 5006R00001lQ1vjQAC, 5006R00001lRG2sQAG, 5006R00001lSdu2QAC, 5006R00001lsTygQAE, 5006R00001hKiWlQAK, 5006R00001mf4CKQAY, 5006R00001nrZYqQAM, 5006R00001nspAeQAI, 5006R00001pkjN2QAI, 5006R00001r5IblQAE, 5006R00001qFbk3QAC, 5006R00001r91aEQAQ, 5006R00001r7y4kQAA]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 5 Nov 2015 18:24:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 49 weeks, 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-253</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 49 weeks, 6 days ago
                        </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>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>chuy@mixmax.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkpov:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr651z:</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="3631">Execution Team 2020-03-09</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Reproduction script attached. Tested on MMAPv1.&lt;/p&gt;</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|hryasn:</customfieldvalue>

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