<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:11:22 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-46397] concurrent dropIndexes on a primary can stall replication on secondaries</title>
                <link>https://jira.mongodb.org/browse/SERVER-46397</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;If there are two concurrent &quot;dropIndexes&quot; commands on a collection (one on each index A and B), this can lead to the following order of operations on the secondary:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;startIndexBuild A&lt;/li&gt;
	&lt;li&gt;startIndexBuild B&lt;/li&gt;
	&lt;li&gt;commitIndexBuild A&lt;/li&gt;
	&lt;li&gt;dropIndexes A -&amp;gt; blocks due concurrent index build B&lt;/li&gt;
	&lt;li&gt;abortIndexBuild B -&amp;gt; never reached due to blocking previous operation (from a separate dropIndexes command)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The blocking is caused by the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6aab3ab5b6c20dd46cb659e8eaefb597f2b53263/src/mongo/db/catalog/drop_indexes.cpp#L504&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;assertion that no background operations are in progress when processing the dropIndexes oplog entry&lt;/a&gt; for &quot;a_1&quot;. This throws and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9b7286dfc6d13c4befa684876902ec0c59336afd/src/mongo/db/repl/oplog.cpp#L1510&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;blocks oplog application&lt;/a&gt;. dropIndexesForApplyOps assumes that no background operations are in progress, which is not always the case. The non-applyOps version of dropIndexes has a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6aab3ab5b6c20dd46cb659e8eaefb597f2b53263/src/mongo/db/catalog/drop_indexes.cpp#L456&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;similar assertion&lt;/a&gt; which only gets executed when no index builds were aborted.&lt;/p&gt;

&lt;p&gt;What I think might be the root causes of this failure:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/6aab3ab5b6c20dd46cb659e8eaefb597f2b53263/src/mongo/db/catalog/drop_indexes.cpp#L337&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;An index can be reported as aborted if even when it has already committed&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;This bypasses &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6aab3ab5b6c20dd46cb659e8eaefb597f2b53263/src/mongo/db/catalog/drop_indexes.cpp#L456&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this assertion&lt;/a&gt; on the primary, but hits &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6aab3ab5b6c20dd46cb659e8eaefb597f2b53263/src/mongo/db/catalog/drop_indexes.cpp#L504&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this assertion&lt;/a&gt; on the secondary, leading to this deadlock.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="1184901">SERVER-46397</key>
            <summary>concurrent dropIndexes on a primary can stall replication on secondaries</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="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Tue, 25 Feb 2020 20:16:02 +0000</created>
                <updated>Sun, 29 Oct 2023 22:11:43 +0000</updated>
                            <resolved>Wed, 11 Mar 2020 20:53:36 +0000</resolved>
                                                    <fixVersion>4.4.0-rc0</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2969317" author="xgen-internal-githook" created="Wed, 11 Mar 2020 22:24:30 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;username&apos;: &apos;louiswilliams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; Only report an index build as aborted if it is currently aborting, not committing&lt;/p&gt;

&lt;p&gt;This expands the concurrency control features used by two-phase index&lt;br/&gt;
builds to standalone nodes and single-phase index builds so that&lt;br/&gt;
concurrent commits and aborts behave correctly.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 2fd22e51e07c93a78a67cbb8d01289b96cb7f60a)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; add missing &apos;break&apos;&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 3848ef2467665a7c7756eb19b42cb0f523c03535)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; When an index build abort is received after a stepDown, wait for another signal&lt;/p&gt;

&lt;p&gt;Reinstates a logical condition that was removed by&lt;br/&gt;
2fd22e51e07c93a78a67cbb8d01289b96cb7f60a&lt;/p&gt;

&lt;p&gt;Adds an IndexBuildAction specific to committing a single-phase build&lt;/p&gt;

&lt;p&gt;(cherry picked from commit ad244f716cb7478c990a79b196f4877975c74613)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6941234fee919185c2545a8170e03cf37e8b3d41&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6941234fee919185c2545a8170e03cf37e8b3d41&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2969063" author="xgen-internal-githook" created="Wed, 11 Mar 2020 20:50:57 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;username&apos;: &apos;louiswilliams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; When an index build abort is received after a stepDown, wait for another signal&lt;/p&gt;

&lt;p&gt;Reinstates a logical condition that was removed by&lt;br/&gt;
2fd22e51e07c93a78a67cbb8d01289b96cb7f60a&lt;/p&gt;

&lt;p&gt;Aadds an IndexBuildAction specific to committing a single-phase build&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ad244f716cb7478c990a79b196f4877975c74613&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ad244f716cb7478c990a79b196f4877975c74613&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2961719" author="xgen-internal-githook" created="Tue, 10 Mar 2020 19:04:41 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;username&apos;: &apos;louiswilliams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; add missing &apos;break&apos;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3848ef2467665a7c7756eb19b42cb0f523c03535&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3848ef2467665a7c7756eb19b42cb0f523c03535&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2961385" author="xgen-internal-githook" created="Tue, 10 Mar 2020 18:03:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;louiswilliams&apos;, &apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46397&quot; title=&quot;concurrent dropIndexes on a primary can stall replication on secondaries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46397&quot;&gt;&lt;del&gt;SERVER-46397&lt;/del&gt;&lt;/a&gt; Only report an index build as aborted if it is currently aborting, not committing&lt;/p&gt;

&lt;p&gt;This expands the concurrency control features used by two-phase index&lt;br/&gt;
builds to standalone nodes and single-phase index builds so that&lt;br/&gt;
concurrent commits and aborts behave correctly.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2fd22e51e07c93a78a67cbb8d01289b96cb7f60a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2fd22e51e07c93a78a67cbb8d01289b96cb7f60a&lt;/a&gt;&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="1217796">SERVER-46594</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1217885">SERVER-46595</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.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="18953"><![CDATA[v4.4]]></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[[5002K00000zfNlMQAU, 5002K000010EPrWQAW]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 10 Mar 2020 18:03:53 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 48 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>
                            3 years, 48 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>50.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>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwut3z:</customfieldvalue>

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

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