<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:54:48 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-84362] Investigate ObjectIsBusy error in the replica set endpoint suite when the ValidateCollections hook is enabled</title>
                <link>https://jira.mongodb.org/browse/SERVER-84362</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The hook has been disabled in this suite since it was causing ObjectIsBusy error with the message Executor error during find command :: caused by :: 16: Device or resource busy.&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2530335">SERVER-84362</key>
            <summary>Investigate ObjectIsBusy error in the replica set endpoint suite when the ValidateCollections hook is enabled</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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.noma@mongodb.com">Gregory Noma</assignee>
                                    <reporter username="cheahuychou.mao@mongodb.com">Cheahuychou Mao</reporter>
                        <labels>
                    </labels>
                <created>Thu, 21 Dec 2023 02:38:18 +0000</created>
                <updated>Tue, 16 Jan 2024 18:02:24 +0000</updated>
                            <resolved>Tue, 16 Jan 2024 18:02:09 +0000</resolved>
                                                    <fixVersion>7.3.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="6014484" author="xgen-internal-githook" created="Tue, 16 Jan 2024 17:08:41 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-84362&quot; title=&quot;Investigate ObjectIsBusy error in the replica set endpoint suite when the ValidateCollections hook is enabled&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-84362&quot;&gt;&lt;del&gt;SERVER-84362&lt;/del&gt;&lt;/a&gt; Make `validate` a targeted cmd for replica set endpoint (#18039)&lt;/p&gt;

&lt;p&gt;GitOrigin-RevId: 6565d8465eb38425a14534855a5b6741da61a8ed&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1196beab8ee54a4a173877ad78251ab8e11d19bd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1196beab8ee54a4a173877ad78251ab8e11d19bd&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="6008249" author="gregory.noma" created="Fri, 12 Jan 2024 19:38:35 +0000"  >&lt;p&gt;I think I figured out why there are two threads both running &lt;tt&gt;validate&lt;/tt&gt; on the same node. The hook &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6d30cad3af7dcfdd963100d7d74548ef7ae464f4/jstests/hooks/validate_collections.js#L15-L19&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;runs &lt;tt&gt;validate&lt;/tt&gt; against each node in parallel with one another&lt;/a&gt;. But since the command goes through the router path with read preference &quot;secondaryPreferred&quot;, both of these end up getting run on the same node (in the case of a two-node replica set). So, I think the solution here is to add &lt;tt&gt;validate&lt;/tt&gt; to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/6d30cad3af7dcfdd963100d7d74548ef7ae464f4/src/mongo/db/replica_set_endpoint_util.h#L37-L71&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this set of commands&lt;/a&gt; which should not go through the router path. This way &lt;tt&gt;validate&lt;/tt&gt; will correctly be run on each node that it is executed on.&lt;/p&gt;</comment>
                            <comment id="6005524" author="gregory.noma" created="Thu, 11 Jan 2024 21:27:42 +0000"  >&lt;p&gt;I noticed that there are multiple threads performing collection validations at the time time right before one of them fails with &lt;tt&gt;ObjectIsBusy&lt;/tt&gt;. So, here&apos;s my current theory. One thread is performing full validation on a collection in the &lt;tt&gt;config&lt;/tt&gt; database. Specifically, it is performing a &lt;tt&gt;verify&lt;/tt&gt; on one of the collection&apos;s tables. Since &lt;tt&gt;validate&lt;/tt&gt; gets run through the router path in this test suite, another thread running validate may end up needing to run a &lt;tt&gt;find&lt;/tt&gt; on the &lt;tt&gt;config&lt;/tt&gt; database &lt;a href=&quot;https://github.com/mongodb/mongo/blob/c001f431168aca7e0c37e5fa96e9966f3cec93bf/src/mongo/s/commands/cluster_validate_cmd.cpp#L108-L109&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. Then this &lt;tt&gt;find&lt;/tt&gt; maybe fail with &lt;tt&gt;ObjectIsBusy&lt;/tt&gt; due to the aforementioned &lt;tt&gt;verify&lt;/tt&gt; operation. Thus the &lt;tt&gt;validate&lt;/tt&gt; will also fail with &lt;tt&gt;ObjectIsBusy&lt;/tt&gt;. The thing I&apos;m unsure about at this point is why &lt;tt&gt;validate&lt;/tt&gt; is being run on multiple thread concurrently, since the hook appears to do this serially.&lt;/p&gt;</comment>
                            <comment id="6002095" author="gregory.noma" created="Wed, 10 Jan 2024 21:42:06 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=cheahuychou.mao%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;cheahuychou.mao@mongodb.com&quot;&gt;cheahuychou.mao@mongodb.com&lt;/a&gt; the &lt;tt&gt;ValidateCollections&lt;/tt&gt; hook runs full validation. Full validation includes WT&apos;s &lt;tt&gt;verify&lt;/tt&gt; which requires exclusive access to a table. When &lt;tt&gt;verify&lt;/tt&gt; is running, any other operations that attempt to access that table will receive an &lt;tt&gt;EBUSY&lt;/tt&gt; error which gets converted into &lt;tt&gt;ObjectIsBusy&lt;/tt&gt;. Usually the &lt;tt&gt;ValidateCollections&lt;/tt&gt; hook runs after a test when both the test and the test fixture are not trying to concurrently perform any operations against the database. Given that we&apos;re seeing &lt;tt&gt;ObjectIsBusy&lt;/tt&gt; errors, is this test suite still performing other operations even when the &lt;tt&gt;ValidateCollections&lt;/tt&gt; hook runs?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2495833">SERVER-83078</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>4.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="25136"><![CDATA[Storage Execution]]></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, 10 Jan 2024 21:42:06 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 weeks, 1 day 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>gregory.noma@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>cheahuychou.mao@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gregory.noma@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i35k7z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2fvn9:7</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7995">Execution Team 2024-01-22</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|i356db:</customfieldvalue>

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