<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:00:42 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-22541] Aggregation plan executors should be owned by global cursor manager</title>
                <link>https://jira.mongodb.org/browse/SERVER-22541</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Plan executors that own a PipelineProxyStage do not hold a collection lock while they are being iterated.  However, all executors that are eligible for kill notifications must hold a lock while they are being iterated, as concurrent access to PlanExecutor::_killReason for registered PlanExecutor objects is protected by the collection lock.&lt;/p&gt;

&lt;p&gt;As a result, if a plan executor owning a PipelineProxyStage executor is killed during execution, then the executor&apos;s call to read _killReason from PlanExecutor::killed() will race with the killing thread&apos;s call to write _killReason from PlanExecutor::kill().  This is undefined behavior, and potentially can result in a server crash.&lt;/p&gt;

&lt;p&gt;Aggregation cursors and plan executors should be owned by the global cursor manager, instead of by the collection&apos;s cursor manager.  This correctly captures the fact that the lifetime of an aggregation cursor/executor is not tied to the lifetime of the collection, and this will prevent these cursors/executors from receiving kill notifications.&lt;/p&gt;

&lt;p&gt;The underlying plan executor owned by DocumentSourceCursor should remain owned by the associated collection&apos;s cursor manager, and should be registered for receiving invalidations and kill notifications.&lt;/p&gt;</description>
                <environment></environment>
        <key id="264231">SERVER-22541</key>
            <summary>Aggregation plan executors should be owned by global cursor manager</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="charlie.swanson@mongodb.com">Charlie Swanson</assignee>
                                    <reporter username="rassi">J Rassi</reporter>
                        <labels>
                    </labels>
                <created>Tue, 9 Feb 2016 20:31:35 +0000</created>
                <updated>Mon, 7 Jun 2021 16:55:12 +0000</updated>
                            <resolved>Thu, 16 Mar 2017 15:47:54 +0000</resolved>
                                                    <fixVersion>3.5.5</fixVersion>
                                    <component>Aggregation Framework</component>
                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="1524674" author="xgen-internal-githook" created="Wed, 15 Mar 2017 15:17:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22541&quot; title=&quot;Aggregation plan executors should be owned by global cursor manager&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22541&quot;&gt;&lt;del&gt;SERVER-22541&lt;/del&gt;&lt;/a&gt; Manage aggregation cursors on global cursor manager.&lt;/p&gt;

&lt;p&gt;Moves registration of aggregation cursors to the global cursor manager.&lt;br/&gt;
This simplifies the logic for acquiring locks and resolving view&lt;br/&gt;
namespaces within the getMore and killCursors commands.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/584ca76de9ee66b3e11987e640f5317ae40975e4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/584ca76de9ee66b3e11987e640f5317ae40975e4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1524673" author="xgen-internal-githook" created="Wed, 15 Mar 2017 15:17:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22541&quot; title=&quot;Aggregation plan executors should be owned by global cursor manager&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22541&quot;&gt;&lt;del&gt;SERVER-22541&lt;/del&gt;&lt;/a&gt; Refactor RAII locking helpers.&lt;/p&gt;

&lt;p&gt;Removes the class &apos;ScopedTransaction&apos; and moves the responsibility of&lt;br/&gt;
abandoning the snapshot onto the GlobalLock class. Also renames the&lt;br/&gt;
AutoGetCollectionForRead class to AutoGetCollectionForReadCommand, and&lt;br/&gt;
adds a new AutoGetCollectionForRead class. Unlike&lt;br/&gt;
AutoGetCollectionForReadCommand, this new class will not update the&lt;br/&gt;
namespace on the CurrentOp object, nor will it add an entry to Top.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f05b9437fbdc53deecf55ed3c20e36af3d733953&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f05b9437fbdc53deecf55ed3c20e36af3d733953&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1524672" author="xgen-internal-githook" created="Wed, 15 Mar 2017 15:17:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;cswanson310&apos;, u&apos;name&apos;: u&apos;Charlie Swanson&apos;, u&apos;email&apos;: u&apos;charlie.swanson@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-22541&quot; title=&quot;Aggregation plan executors should be owned by global cursor manager&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-22541&quot;&gt;&lt;del&gt;SERVER-22541&lt;/del&gt;&lt;/a&gt; Refactor RAII locking helpers.&lt;/p&gt;

&lt;p&gt;Removes the class &apos;ScopedTransaction&apos; and moves the responsibility of&lt;br/&gt;
abandoning the snapshot to the GlobalLock class. Also renames the&lt;br/&gt;
AutoGetCollectionForRead helper to AutoGetCollectionForReadCommand, and&lt;br/&gt;
adds a new AutoGetCollectionForRead class. Unlike&lt;br/&gt;
AutoGetCollectionForReadCommand, this new class will not update the&lt;br/&gt;
namespace on the CurrentOp object, nor will it add an entry to Top.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/fcd6f14c86ef2ac0be92e4cc4ca8893dcf603b01&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/fcd6f14c86ef2ac0be92e4cc4ca8893dcf603b01&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1434946" author="charlie.swanson" created="Tue, 15 Nov 2016 20:55:55 +0000"  >&lt;p&gt;Bringing this into the current sprint since we believe it will provide a path forward for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-25694&quot; title=&quot;DocumentSourceCursor should destroy its PlanExecutor while holding the collection lock&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-25694&quot;&gt;&lt;del&gt;SERVER-25694&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1211886" author="rassi@10gen.com" created="Tue, 22 Mar 2016 21:35:22 +0000"  >&lt;p&gt;Bumping fix version back to &quot;3.3 Desired&quot;.&lt;/p&gt;

&lt;p&gt;This work was originally scheduled for 3.4 to fix a number of long-standing locking issues related to aggregation cursors.  This work has many tech debt benefits in the area of query/agg integration, but it requires changing the namespace of aggregation cursor operations from &quot;&amp;lt;db&amp;gt;.&amp;lt;collection&amp;gt;&quot; to &quot;&amp;lt;db&amp;gt;.$cmd.aggregate.&amp;lt;collection&amp;gt;&quot;.  The merge cursors pipeline stage (currently run on the database primary shard for all sharded aggregations) currently only knows how to merge cursors on the original collection namespace, so it requires minor work to be namespace-agnostic for its input cursors (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23294&quot; title=&quot;DocumentSourceMergeCursors should be namespace-agnostic for merged cursors&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23294&quot;&gt;&lt;del&gt;SERVER-23294&lt;/del&gt;&lt;/a&gt;).  This minor work on the merge cursors pipeline stage could be easily backported to 3.2.5, but versions of the server prior to 3.2.5 will fail the merge operation when trying to merge aggregation cursors created on 3.4+ mongod nodes.  As a result, this change would force 3.2.0-3.2.4 users to either take downtime on their sharded aggregations while upgrading to 3.4, or instead upgrade mongod through 3.2.5+ on their way to 3.4.&lt;/p&gt;

&lt;p&gt;At the moment, we&apos;re considering this upgrade restriction to be prohibitive, so we&apos;re unscheduling this from 3.4.  Once 3.4 is released with the fix for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-23294&quot; title=&quot;DocumentSourceMergeCursors should be namespace-agnostic for merged cursors&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-23294&quot;&gt;&lt;del&gt;SERVER-23294&lt;/del&gt;&lt;/a&gt;, we&apos;ll be able to commit this work for 3.6 without any upgrade restrictions.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="323193">SERVER-26608</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="295712">SERVER-24704</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="189959">SERVER-17624</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="335554">SERVER-27253</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="338667">SERVER-27414</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="512975">SERVER-33959</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="315149">SERVER-26037</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1643268">SERVER-55034</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="300192">SERVER-25005</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="274389">SERVER-23294</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="386566">SERVER-29354</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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.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>Fri, 10 Jun 2016 18:00:36 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 48 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-682</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>benety.goh@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 48 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>15.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>charlie.swanson@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>rassi</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrkhp3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsvtzj:</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="899">Query 11 (03/14/16)</customfieldvalue>
    <customfieldvalue id="1349">Query 2016-11-21</customfieldvalue>
    <customfieldvalue id="1389">Query 2016-12-12</customfieldvalue>
    <customfieldvalue id="1465">Query 2017-02-13</customfieldvalue>
    <customfieldvalue id="1571">Query 2017-03-27</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|hrj93r:</customfieldvalue>

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