<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:33:53 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-33577] Remove UninterruptibleLockGuards in sharding code to allow interruptible lock acquisition</title>
                <link>https://jira.mongodb.org/browse/SERVER-33577</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Since &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-32638&quot; title=&quot;Permit dblock acquisition waiting to be interruptible by killOp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-32638&quot;&gt;&lt;del&gt;SERVER-32638&lt;/del&gt;&lt;/a&gt;, global and database locks can be interrupted when an OperationContext is killed and throw a DBException with an &lt;tt&gt;Interrupted&lt;/tt&gt; error code. This includes all AutoGet helpers.&lt;/p&gt;

&lt;p&gt;The following places in the sharding code have temporary &lt;tt&gt;UninterruptibleLockGuard&lt;/tt&gt; s to prevent crashing due to inadequate exception handling:&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;MigrationSourceManager&quot;&gt;&lt;/a&gt;MigrationSourceManager&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L151&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L151&lt;/a&gt;&#160;(used for MODE_IS collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L450&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L450&lt;/a&gt;&#160;(used for MODE_IX collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L486&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L486&lt;/a&gt;&#160;(used for MODE_IX collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L559&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L559&lt;/a&gt;&#160;(used for MODE_IS collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L626&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L626&lt;/a&gt;&#160;(used for MODE_IS collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L669&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L669&lt;/a&gt;&#160;(used for MODE_IX oplog collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L685&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/migration_source_manager.cpp#L685&lt;/a&gt;&#160;(used for MODE_IX collection lock and MODE_X CSRLock)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;&lt;a name=&quot;MovePrimarySourceManager&quot;&gt;&lt;/a&gt;MovePrimarySourceManager&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/move_primary_source_manager.cpp#L255&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/move_primary_source_manager.cpp#L255&lt;/a&gt;&#160;(used for MODE_IX db lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/move_primary_source_manager.cpp#L359&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/move_primary_source_manager.cpp#L359&lt;/a&gt;&#160;(used for MODE_IX db lock)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;&lt;a name=&quot;CollectionRangeDeleter&quot;&gt;&lt;/a&gt;CollectionRangeDeleter&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/collection_range_deleter.cpp#L135&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/collection_range_deleter.cpp#L135&lt;/a&gt;&#160;(used for MODE_IX collection lock)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/collection_range_deleter.cpp#L255&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/42999ae47bacedf260be2d6dd5e377ff0ae63744/src/mongo/db/s/collection_range_deleter.cpp#L255&lt;/a&gt;&#160;(used for MODE_IX collection lock)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="504146">SERVER-33577</key>
            <summary>Remove UninterruptibleLockGuards in sharding code to allow interruptible lock acquisition</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13202">Works as Designed</resolution>
                                        <assignee username="backlog-server-sharding">[DO NOT USE] Backlog - Sharding Team</assignee>
                                    <reporter username="louis.williams@mongodb.com">Louis Williams</reporter>
                        <labels>
                    </labels>
                <created>Thu, 1 Mar 2018 16:55:56 +0000</created>
                <updated>Fri, 27 Oct 2023 13:53:57 +0000</updated>
                            <resolved>Fri, 15 Mar 2019 13:48:44 +0000</resolved>
                                    <version>3.7.3</version>
                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2181630" author="kaloian.manassiev" created="Fri, 15 Mar 2019 13:48:35 +0000"  >&lt;p&gt;As part of the dependent tickets we have removed the UninterruptibleLockGuard(s) necessary for the replication stepdown project. The remaining places, which Blake has linked are about cleaning up the internal sharding data structures and removing them without some redesign is difficult. Given that the prepare project is unblocked now, I am going to close this ticket as Works as Designed.&lt;/p&gt;</comment>
                            <comment id="2159084" author="blake.oler" created="Thu, 21 Feb 2019 21:32:49 +0000"  >&lt;p&gt;We have removed some of these since. We have gone from 16 uses to 11 &#8211; in that process, we removed all uses from the &lt;tt&gt;MigrationDestinationManager&lt;/tt&gt; and &lt;tt&gt;ReplsetDistLockManager&lt;/tt&gt;. I linked some relevant tickets.&lt;/p&gt;

&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=greg.mckeon&quot; class=&quot;user-hover&quot; rel=&quot;greg.mckeon&quot;&gt;greg.mckeon&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1821063" author="kaloian.manassiev" created="Fri, 2 Mar 2018 14:40:40 +0000"  >&lt;p&gt;The migration source manager is not 100% exception-safe, especially during the migration critical section. It would require some redesign to be able to remove the UninterruptibleLockGuards, so I am putting this on 3.7 Desired, to be done if time permits.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="646086">SERVER-38440</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="647757">SERVER-38474</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="647750">SERVER-38473</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="665077">SERVER-38828</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>3.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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25141"><![CDATA[Sharding]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 2 Mar 2018 14:40:40 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 47 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-38474'>SERVER-38474</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-38440'>SERVER-38440</a></s>]]></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, 47 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-sharding</customfieldvalue>
            <customfieldvalue>blake.oler@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</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|htrfy7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr7myf:</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="2786">Sharding 2019-02-11</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|htr24n:</customfieldvalue>

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