<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:47:37 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-59591] LockerNoop::isW() always returns true allowing multiple operations think they are holding the global exclusive lock at the same time</title>
                <link>https://jira.mongodb.org/browse/SERVER-59591</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This is problematic because the &lt;tt&gt;profile&lt;/tt&gt; command on mongos uses a &lt;tt&gt;LockerNoop&lt;/tt&gt; and &lt;tt&gt;CollectionCatalog::write()&lt;/tt&gt;. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58736&quot; title=&quot;Avoid quadratic behavior in rollback with many collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58736&quot;&gt;&lt;del&gt;SERVER-58736&lt;/del&gt;&lt;/a&gt; introduced an optimization to skip copying the collection catalog on write if the exclusive global lock is held. But the usage of &lt;tt&gt;LockerNoop&lt;/tt&gt; in the &lt;tt&gt;profile&lt;/tt&gt; command breaks this assumption given that &lt;tt&gt;isW()&lt;/tt&gt; always returns true.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1860229">SERVER-59591</key>
            <summary>LockerNoop::isW() always returns true allowing multiple operations think they are holding the global exclusive lock at the same time</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="gregory.wlodarek@mongodb.com">Gregory Wlodarek</assignee>
                                    <reporter username="gregory.wlodarek@mongodb.com">Gregory Wlodarek</reporter>
                        <labels>
                    </labels>
                <created>Wed, 25 Aug 2021 19:34:06 +0000</created>
                <updated>Sun, 29 Oct 2023 21:49:12 +0000</updated>
                            <resolved>Fri, 27 Aug 2021 16:10:05 +0000</resolved>
                                                    <fixVersion>5.0.4</fixVersion>
                    <fixVersion>5.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="4106427" author="JIRAUSER1259052" created="Wed, 6 Oct 2021 17:24:44 +0000"  >&lt;p&gt;Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it&#8217;s been triggered. For more active release information, please keep an eye on #server-release. Thank you!&lt;/p&gt;</comment>
                            <comment id="4072701" author="xgen-internal-githook" created="Mon, 20 Sep 2021 20:40:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;, &apos;username&apos;: &apos;GWlodarek&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-59591&quot; title=&quot;LockerNoop::isW() always returns true allowing multiple operations think they are holding the global exclusive lock at the same time&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-59591&quot;&gt;&lt;del&gt;SERVER-59591&lt;/del&gt;&lt;/a&gt; LockerNoop::isW() returns false&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 329b23bc73b8f143375b5c577c7d787c08699275)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/82507aa16a5a01b51a93431eb82ebc4ad74e04c7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/82507aa16a5a01b51a93431eb82ebc4ad74e04c7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4026697" author="xgen-internal-githook" created="Fri, 27 Aug 2021 15:55:24 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Wlodarek&apos;, &apos;email&apos;: &apos;gregory.wlodarek@mongodb.com&apos;, &apos;username&apos;: &apos;GWlodarek&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-59591&quot; title=&quot;LockerNoop::isW() always returns true allowing multiple operations think they are holding the global exclusive lock at the same time&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-59591&quot;&gt;&lt;del&gt;SERVER-59591&lt;/del&gt;&lt;/a&gt; LockerNoop::isW() returns false&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/329b23bc73b8f143375b5c577c7d787c08699275&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/329b23bc73b8f143375b5c577c7d787c08699275&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4024604" author="gregory.wlodarek" created="Thu, 26 Aug 2021 16:31:11 +0000"  >&lt;p&gt;I&apos;ve filed&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-59618&quot; title=&quot;Avoid using LockerNoop outside of unit tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-59618&quot;&gt;&lt;del&gt;SERVER-59618&lt;/del&gt;&lt;/a&gt; in an attempt to stop using &lt;tt&gt;LockerNoop&lt;/tt&gt; outside of unit testing as the long-term solution.&lt;/p&gt;</comment>
                            <comment id="4024569" author="gregory.wlodarek" created="Thu, 26 Aug 2021 16:21:21 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;, I haven&apos;t looked into that. Originally I thought that LockerNoop was used to make unit testing easier, but this made me realize it&apos;s easy to make unintentional changes that affect things outside of that. We should probably reevaluate using LockerNoop outside of unit testing.&lt;/p&gt;</comment>
                            <comment id="4024416" author="daniel.gottlieb@10gen.com" created="Thu, 26 Aug 2021 15:42:51 +0000"  >&lt;p&gt;Not exactly pertinent question: why does a mongos use a LockerNoop?&lt;/p&gt;</comment>
                            <comment id="4022696" author="gregory.wlodarek" created="Wed, 25 Aug 2021 20:11:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt;,&#160;since &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58736&quot; title=&quot;Avoid quadratic behavior in rollback with many collections&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58736&quot;&gt;&lt;del&gt;SERVER-58736&lt;/del&gt;&lt;/a&gt; needs to be backported to v5.0 I think the easiest thing here is to have &lt;tt&gt;isW()&lt;/tt&gt; return false as this will also need to be backported. I ran a patch &lt;a href=&quot;https://spruce.mongodb.com/version/612695a3d1fe073e55389464/tasks?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; that only required two unit tests fixtures to be changed.&#160;&lt;/p&gt;

&lt;p&gt;I do agree that &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-26879&quot; title=&quot;Get rid of LockerNoop&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-26879&quot;&gt;&lt;del&gt;SERVER-26879&lt;/del&gt;&lt;/a&gt; would make life easier. I spent a good portion of the day debugging the build failure only to realize the operation is using a LockerNoop.&lt;/p&gt;</comment>
                            <comment id="4022680" author="milkie" created="Wed, 25 Aug 2021 20:01:56 +0000"  >&lt;p&gt;Yes, this is &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31247&quot; title=&quot;enhance LockerNoOp&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31247&quot;&gt;&lt;del&gt;SERVER-31247&lt;/del&gt;&lt;/a&gt; that we never changed.  LockerNoOp&apos;s answers were customized to get various tests to pass, so I suspect you won&apos;t be able to just change its answer for isW() without a lot of extra work to fix all the tests that rely on it.&lt;br/&gt;
We wanted to do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-26879&quot; title=&quot;Get rid of LockerNoop&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-26879&quot;&gt;&lt;del&gt;SERVER-26879&lt;/del&gt;&lt;/a&gt; eventually but never finished it due to the amount of work.&lt;br/&gt;
Perhaps the simplest thing to do is avoid using LockerNoOp outside of unit tests as much as possible.  Can we remove it from the profile logic?&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="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1827596">SERVER-58736</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1860858">SERVER-59618</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1883881">SERVER-60229</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>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="21777"><![CDATA[v5.0]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 25 Aug 2021 20:01:56 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 18 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>
                            2 years, 18 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>137.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gregory.wlodarek@mongodb.com</customfieldvalue>
            <customfieldvalue>vivian.ge@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzz8g7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr2w9j:</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="5118">Execution Team 2021-09-06</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|hzyup3:</customfieldvalue>

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