<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:01:36 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-42852] buildStages() STAGE_SHARDING_FILTER block should hold child stage tree by unique_ptr</title>
                <link>https://jira.mongodb.org/browse/SERVER-42852</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;When building a ShardFilterStage we will do the following:&lt;/p&gt;

&lt;p&gt;1) Build the child stage tree, and hold by raw pointer&lt;/p&gt;

&lt;p&gt;2) Get a CollectionShardingState object and use it to retrieve an orphans filter via call to&#160;CollectionShardingState::getOrphansFilter().&lt;/p&gt;

&lt;p&gt;3) Create and return the&#160;ShardFilterStage&lt;/p&gt;

&lt;p&gt;The call to&#160;CollectionShardingState::get() can dassert and the call to&#160;CollectionShardingState::getOrphansFilter() can uassert. In either case we will leak the child stage tree.&lt;/p&gt;

&lt;p&gt;We should change this block to hold the child stage tree by unique_ptr and not release until after acquiring the orphans filter.&lt;/p&gt;</description>
                <environment></environment>
        <key id="898516">SERVER-42852</key>
            <summary>buildStages() STAGE_SHARDING_FILTER block should hold child stage tree by unique_ptr</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="david.storch@mongodb.com">David Storch</assignee>
                                    <reporter username="james.wahlin@mongodb.com">James Wahlin</reporter>
                        <labels>
                            <label>query-44-grooming</label>
                    </labels>
                <created>Fri, 16 Aug 2019 16:25:55 +0000</created>
                <updated>Sun, 29 Oct 2023 22:18:01 +0000</updated>
                            <resolved>Wed, 4 Sep 2019 15:37:11 +0000</resolved>
                                    <version>4.2.0</version>
                    <version>4.3.1</version>
                                    <fixVersion>4.3.1</fixVersion>
                    <fixVersion>4.2.10</fixVersion>
                                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="3356068" author="david.storch" created="Mon, 24 Aug 2020 18:57:06 +0000"  >&lt;p&gt;I&apos;ve merged a custom, targeted fix to the 4.2 branch. The narrow fix on 4.2 applies specifically to the memory leak in the description of this ticket which can result when the &lt;tt&gt;StageBuilder&lt;/tt&gt; is constructing a &lt;tt&gt;ShardFilterStage&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="3355943" author="xgen-internal-githook" created="Mon, 24 Aug 2020 18:15:12 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;David Storch&apos;, &apos;email&apos;: &apos;david.storch@mongodb.com&apos;, &apos;username&apos;: &apos;dstorch&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42852&quot; title=&quot;buildStages() STAGE_SHARDING_FILTER block should hold child stage tree by unique_ptr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42852&quot;&gt;&lt;del&gt;SERVER-42852&lt;/del&gt;&lt;/a&gt; Hold ShardFilterStage by unique_ptr while obtaining ScopedCollectionMetadata&lt;/p&gt;

&lt;p&gt;This is a minimal backport of the fixes present on more&lt;br/&gt;
recent branches.  It is designed to prevent a rare memory&lt;br/&gt;
leak that can occur when obtaining the&lt;br/&gt;
ScopedCollectionMetadata triggers a uassert.&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cef23d286f5f9af1295d8097b33df764cc2201fe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cef23d286f5f9af1295d8097b33df764cc2201fe&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2407258" author="david.storch" created="Wed, 4 Sep 2019 15:36:48 +0000"  >&lt;p&gt;As &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=james.wahlin&quot; class=&quot;user-hover&quot; rel=&quot;james.wahlin&quot;&gt;james.wahlin&lt;/a&gt; suggested above, the patch merged for this ticket ensures that in all contexts &lt;tt&gt;PlanStage&lt;/tt&gt; pointers are held as unique_ptr rather than raw pointer. The fix is therefore not a narrow one which applies only to &lt;tt&gt;STAGE_SHARDING_FILTER&lt;/tt&gt;, but rather a broad one which cuts across the code for the &lt;tt&gt;PlanStage&lt;/tt&gt; query execution tree.&lt;/p&gt;</comment>
                            <comment id="2407245" author="xgen-internal-githook" created="Wed, 4 Sep 2019 15:33:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;David Storch&apos;, &apos;email&apos;: &apos;david.storch@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-42852&quot; title=&quot;buildStages() STAGE_SHARDING_FILTER block should hold child stage tree by unique_ptr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-42852&quot;&gt;&lt;del&gt;SERVER-42852&lt;/del&gt;&lt;/a&gt; Make PlanStage consistently hold children by unique_ptr.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b13188206e74dbeb66c4b663d83ed1d1f97c286b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b13188206e74dbeb66c4b663d83ed1d1f97c286b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2375320" author="james.wahlin@10gen.com" created="Fri, 16 Aug 2019 16:28:59 +0000"  >&lt;p&gt;At present stage_builder.cpp has a mix of holding child stage trees (returned by recursive buildStages() call) by raw pointer and unique_ptr. We could consider using this ticket to change all remaining places where we hold by raw pointer.&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>
                    </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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></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, 23 Aug 2019 21:05:20 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 24 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_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>
                            3 years, 24 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>72.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>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hvlf3z:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hva94v:</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_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|hvl1db:</customfieldvalue>

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