<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:45:49 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-37379] Coverity analysis defect 105058: Dereference after null check</title>
                <link>https://jira.mongodb.org/browse/SERVER-37379</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Pointer is checked against null but then dereferenced anyway&lt;/p&gt;

&lt;p&gt;Defect 105058 (STATIC_C)&lt;br/&gt;
  Checker FORWARD_NULL (subcategory none)&lt;br/&gt;
  File:  &lt;tt&gt;/src/mongo/db/pipeline/pipeline_d.cpp&lt;/tt&gt;&lt;br/&gt;
  Function &lt;tt&gt;mongo::PipelineD::prepareExecutor(mongo::OperationContext *, mongo::Collection *, const mongo::NamespaceString &amp;amp;, mongo::Pipeline *, const boost::intrusive_ptr&amp;lt;mongo::ExpressionContext&amp;gt; &amp;amp;, bool, const boost::intrusive_ptr&amp;lt;mongo::DocumentSourceSort&amp;gt; &amp;amp;, std::unique_ptr&amp;lt;mongo::GroupFromFirstDocumentTransformation, std::default_delete&amp;lt;mongo::GroupFromFirstDocumentTransformation&amp;gt;&amp;gt;, const mongo::DepsTracker &amp;amp;, const mongo::BSONObj &amp;amp;, const mongo::AggregationRequest *, const unsigned long long &amp;amp;, mongo::BSONObj *, mongo::BSONObj *)&lt;/tt&gt;&lt;br/&gt;
    /src/mongo/db/pipeline/pipeline_d.cpp, line: 554&lt;br/&gt;
    &lt;font color=&quot;red&quot;&gt;Comparing &quot;sortObj&quot; to null implies that &quot;sortObj&quot; might be null.&lt;/font&gt; &lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            auto swExecutorGrouped = attemptToGetExecutor(opCtx,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;  File:  &lt;tt&gt;/src/mongo/db/pipeline/pipeline_d.cpp&lt;/tt&gt;&lt;br/&gt;
  Function &lt;tt&gt;mongo::PipelineD::prepareExecutor(mongo::OperationContext *, mongo::Collection *, const mongo::NamespaceString &amp;amp;, mongo::Pipeline *, const boost::intrusive_ptr&amp;lt;mongo::ExpressionContext&amp;gt; &amp;amp;, bool, const boost::intrusive_ptr&amp;lt;mongo::DocumentSourceSort&amp;gt; &amp;amp;, std::unique_ptr&amp;lt;mongo::GroupFromFirstDocumentTransformation, std::default_delete&amp;lt;mongo::GroupFromFirstDocumentTransformation&amp;gt;&amp;gt;, const mongo::DepsTracker &amp;amp;, const mongo::BSONObj &amp;amp;, const mongo::AggregationRequest *, const unsigned long long &amp;amp;, mongo::BSONObj *, mongo::BSONObj *)&lt;/tt&gt;&lt;br/&gt;
    /src/mongo/db/pipeline/pipeline_d.cpp, line: 554&lt;br/&gt;
    &lt;font color=&quot;red&quot;&gt;Comparing &quot;sortObj&quot; to null implies that &quot;sortObj&quot; might be null.&lt;/font&gt; &lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;            auto swExecutorGrouped = attemptToGetExecutor(opCtx,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
</description>
                <environment></environment>
        <key id="611441">SERVER-37379</key>
            <summary>Coverity analysis defect 105058: Dereference after null check</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13203">Gone away</resolution>
                                        <assignee username="backlog-query-execution">Backlog - Query Execution</assignee>
                                    <reporter username="xgen-internal-coverity">Coverity Collector User</reporter>
                        <labels>
                            <label>coverity</label>
                            <label>neweng</label>
                            <label>query-44-grooming</label>
                    </labels>
                <created>Fri, 28 Sep 2018 16:46:51 +0000</created>
                <updated>Fri, 27 Oct 2023 20:43:14 +0000</updated>
                            <resolved>Mon, 12 Apr 2021 00:39:33 +0000</resolved>
                                                                    <component>Aggregation Framework</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2019619" author="justin.seyster" created="Mon, 1 Oct 2018 19:17:37 +0000"  >&lt;p&gt;I guess that before my change, PipelineD::prepareExecutor() would assume that sortObj and sortStage are either both NULL or both not NULL, so we only ever needed a check on sortStage. Now, the code includes checks for each, and Coverity is rightly noting that we don&apos;t explicitly encode our assumptions about sortObj and sortStage anywhere.&lt;/p&gt;

&lt;p&gt;Perhaps an invariant at the start of this &lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/src/mongo/db/pipeline/pipeline_d.cpp#L607&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;if block&lt;/a&gt; (invariant(sortObj)) would improve clarity and silence this warning.&lt;/p&gt;</comment>
                            <comment id="2019562" author="david.storch" created="Mon, 1 Oct 2018 18:45:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=justin.seyster&quot; class=&quot;user-hover&quot; rel=&quot;justin.seyster&quot;&gt;justin.seyster&lt;/a&gt;, Coverity likely picked this up due to your recent changes for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-9507&quot; title=&quot;Optimize $sort+$group+$first pipeline to avoid full index scan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-9507&quot;&gt;&lt;del&gt;SERVER-9507&lt;/del&gt;&lt;/a&gt;. A quick glance suggests that it could be a false positive. Can you take a look and put this back into &quot;Needs Scheduling&quot; when you have a conclusion about whether this should be fixed?&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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25125"><![CDATA[Query Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 1 Oct 2018 18:45:53 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 19 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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 19 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-query-execution</customfieldvalue>
            <customfieldvalue>xgen-internal-coverity</customfieldvalue>
            <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>justin.seyster@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu94bz:</customfieldvalue>

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

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