<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:02:34 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-43216] Invariant internal operations that acquire strong locks are marked killable</title>
                <link>https://jira.mongodb.org/browse/SERVER-43216</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, internal operations rely on calling&#160;&lt;tt&gt;setSystemOperationKillable()&lt;/tt&gt; to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/78bd6e0f1860a7c9a7ea8aa0f5de5cfb7c40465f/src/mongo/db/repl/replication_coordinator_impl.cpp#L1858&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;allow themselves to be killed&lt;/a&gt; by the RstlKillOpThread on step up/down. This design is error-prone until we do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-43215&quot; title=&quot;Have a better way to enforce internal threads that acquire strong locks are killed during step up/down&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-43215&quot;&gt;&lt;del&gt;SERVER-43215&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For the time being, we should invariant internal operations that acquire strong locks are marked killable.&lt;/p&gt;</description>
                <environment></environment>
        <key id="919011">SERVER-43216</key>
            <summary>Invariant internal operations that acquire strong locks are marked killable</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="jason.chan@mongodb.com">Jason Chan</assignee>
                                    <reporter username="lingzhi.deng@mongodb.com">Lingzhi Deng</reporter>
                        <labels>
                    </labels>
                <created>Fri, 6 Sep 2019 21:38:51 +0000</created>
                <updated>Wed, 12 Feb 2020 15:36:31 +0000</updated>
                            <resolved>Wed, 12 Feb 2020 15:36:31 +0000</resolved>
                                                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="2873569" author="jason.chan" created="Wed, 12 Feb 2020 15:36:20 +0000"  >&lt;p&gt;Closing this as Won&apos;t Fix. The most straightforward approach would be to add an invariant at the lock acquisition layer that internal threads that take global locks must be marked killable. However, there are certain threads that still acquire strong locks on db namespaces that we don&apos;t expect to ever hit a prepare conflict and there is currently no way to filter out these namespaces at this layer.&lt;/p&gt;</comment>
                            <comment id="2560344" author="jason.chan" created="Thu, 21 Nov 2019 20:56:12 +0000"  >&lt;p&gt;This ticket originally had two parts:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Add an invariant when we hit a prepare conflict and check that if the conflicting thread is an internal operation, it must be marked killable.&lt;/li&gt;
	&lt;li&gt;Add an invariant at lock acquisition time that if a strong lock is acquired and the conflicting thread is an internal operation, it must be marked killable. It is okay to ignore the &apos;local&apos;, &apos;admin&apos;, and &apos;config&apos; name spaces since we don&apos;t expect to conflict with locks held by prepared transactions for them.&#160;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Currently, the legacy MapReduce command grabs a CollectionLock in X mode when dropping temp collections. Since there doesn&apos;t seem like a good way to check that a collection/DB lock is acquired on a temporary collection at the lock acquisition layer, I don&apos;t think it would be worth it to make changes to the legacy MapReduce code that will be replaced soon. The Query test is in the process of switching the tests from using the legacy MapReduce to the new one where no strong locks are expected to be held. I think it would be better to hold off on (2) until &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42511&quot; title=&quot;Remove query knob internalQueryUseAggMapReduce&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42511&quot;&gt;&lt;del&gt;SERVER-42511&lt;/del&gt;&lt;/a&gt; is completed.&#160;&lt;/p&gt;

&lt;p&gt;I created&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44779&quot; title=&quot;Invariant internal operations that hit a prepareConflict must be marked killable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44779&quot;&gt;&lt;del&gt;SERVER-44779&lt;/del&gt;&lt;/a&gt; to push (1) which doesn&apos;t have any dependencies on MR.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="917671">SERVER-43174</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1009935">SERVER-44722</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="880128">SERVER-42511</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1018928">SERVER-44779</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="753876">SERVER-40936</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="759582">SERVER-41034</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="919010">SERVER-43215</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>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 18 Nov 2019 21:28:24 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years 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-43174'>SERVER-43174</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-44722'>SERVER-44722</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-42511'>SERVER-42511</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>jason.chan@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            4 years ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jason.chan@mongodb.com</customfieldvalue>
            <customfieldvalue>lingzhi.deng@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvow2v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6ybb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3261">Repl 2019-10-21</customfieldvalue>
    <customfieldvalue id="3303">Repl 2019-11-04</customfieldvalue>
    <customfieldvalue id="3304">Repl 2019-11-18</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|hvoic7:</customfieldvalue>

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