<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 02:54: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-521] cursor may be deleted while in use by getMore()</title>
                <link>https://jira.mongodb.org/browse/SERVER-521</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I&apos;m trying to debug some issues that occur when we run our standard js tests in parallel.  While looking at the code, I noticed the following: &lt;/p&gt;

&lt;p&gt;    /* called every 4 seconds.  millis is amount of idle time passed since the last call &amp;#8211; could be zero */&lt;br/&gt;
    void ClientCursor::idleTimeReport(unsigned millis) {&lt;br/&gt;
        recursive_boostlock lock(ccmutex);&lt;br/&gt;
        for ( CCByLoc::iterator i = byLoc.begin(); i != byLoc.end();  ) {&lt;br/&gt;
            CCByLoc::iterator j = i;&lt;br/&gt;
            i++;&lt;br/&gt;
            if( j-&amp;gt;second-&amp;gt;shouldTimeout( millis ) )&lt;/p&gt;
{
                log(1) &amp;lt;&amp;lt; &quot;killing old cursor &quot; &amp;lt;&amp;lt; j-&amp;gt;second-&amp;gt;cursorid &amp;lt;&amp;lt; &apos; &apos; &amp;lt;&amp;lt; j-&amp;gt;second-&amp;gt;ns 
                       &amp;lt;&amp;lt; &quot; idle:&quot; &amp;lt;&amp;lt; j-&amp;gt;second-&amp;gt;idleTime() &amp;lt;&amp;lt; &quot;ms\n&quot;;
                delete j-&amp;gt;second;
            }
&lt;p&gt;        }&lt;br/&gt;
    }&lt;/p&gt;

&lt;p&gt;idleTimeReport() gets called with only a read lock in place, so it can happen in parallel with a getMore() request.  getMore() grabs the client cursor mutex while it&apos;s finding a client cursor, but then it releases the client cursor mutex and continues to use the client cursor object it has found.  I believe it&apos;s possible for idleTimeReport() to delete a getMore()&apos;s client cursor after getMore() has looked up the client cursor but before getMore() has finished accessing the client cursor&apos;s attributes.&lt;/p&gt;

&lt;p&gt;I&apos;m sorry I haven&apos;t written a test case - that&apos;s hard to do for a rare race condition like this.&lt;/p&gt;</description>
                <environment></environment>
        <key id="11078">SERVER-521</key>
            <summary>cursor may be deleted while in use by getMore()</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="9">Done</resolution>
                                        <assignee username="dwight@mongodb.com">Dwight Merriman</assignee>
                                    <reporter username="aaron">Aaron Staple</reporter>
                        <labels>
                    </labels>
                <created>Mon, 4 Jan 2010 17:16:23 +0000</created>
                <updated>Tue, 12 Jul 2016 00:28:41 +0000</updated>
                            <resolved>Wed, 6 Jan 2010 13:55:59 +0000</resolved>
                                                    <fixVersion>1.3.1</fixVersion>
                                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="11687" author="auto" created="Mon, 11 Jan 2010 06:28:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Eliot Horowitz&apos;, &apos;email&apos;: &apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: fix issue from ClientCursor Pointer thing &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-521&quot; title=&quot;cursor may be deleted while in use by getMore()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-521&quot;&gt;&lt;del&gt;SERVER-521&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/fa1b3331b2eb4709020519247c1625210a740a87&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/fa1b3331b2eb4709020519247c1625210a740a87&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="11647" author="auto" created="Wed, 6 Jan 2010 13:41:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Dwight&apos;, &apos;email&apos;: &apos;dmerriman@gmail.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-521&quot; title=&quot;cursor may be deleted while in use by getMore()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-521&quot;&gt;&lt;del&gt;SERVER-521&lt;/del&gt;&lt;/a&gt; cursor may be deleted while in getMore&lt;br/&gt;
&lt;a href=&quot;http://github.com/mongodb/mongo/commit/63c26a96bdead538d77470be1bae1ed4925d4614&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://github.com/mongodb/mongo/commit/63c26a96bdead538d77470be1bae1ed4925d4614&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 6 Jan 2010 13:41:31 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        14 years, 6 weeks, 2 days 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_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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            14 years, 6 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>aaron</customfieldvalue>
            <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>dwight@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrpt8v:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>22321</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_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|hsby5j:</customfieldvalue>

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