<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:20:04 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-29162] UpdateNode implementation should only validate modified fields</title>
                <link>https://jira.mongodb.org/browse/SERVER-29162</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The &lt;tt&gt;UpdateStage&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ad473bb00cddb5e6ec83589fd4a7ebe780d7ca7d/src/mongo/db/exec/update.cpp#L303&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;validates the updated document&lt;/a&gt; to ensure that it has no $-prefixed names, no immutable fields are changed (shard key and _id), and the document does not exceed the maximum BSON depth. The old implementation reports which fields are modified, so &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ad473bb00cddb5e6ec83589fd4a7ebe780d7ca7d/src/mongo/db/exec/update.cpp#L337&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the validation only checks modified fields&lt;/a&gt;. The new &lt;tt&gt;UpdateNode&lt;/tt&gt; implementation does not report which fields are modified, so &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ad473bb00cddb5e6ec83589fd4a7ebe780d7ca7d/src/mongo/db/exec/update.cpp#L321&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the validation checks the entire document&lt;/a&gt;. This leads to a large performance regression, so the &lt;tt&gt;UpdateNode&lt;/tt&gt; implementation should ensure that only modified fields are checked.&lt;/p&gt;

&lt;p&gt;Note that we should avoid putting all array elements modified by an array update into a &lt;tt&gt;FieldRefSet&lt;/tt&gt;, as this will likely be very expensive when many array elements are updated. Instead, we could handle validation at the leaves of the &lt;tt&gt;UpdateNode&lt;/tt&gt; tree, or, if there is an array update on array field &lt;tt&gt;a&lt;/tt&gt;, we could report that the entire field &lt;tt&gt;a&lt;/tt&gt; was modified, so the &lt;tt&gt;UpdateStage&lt;/tt&gt; will validate the entire field &lt;tt&gt;a&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="383112">SERVER-29162</key>
            <summary>UpdateNode implementation should only validate modified fields</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="tess.avitabile@mongodb.com">Tess Avitabile</assignee>
                                    <reporter username="tess.avitabile@mongodb.com">Tess Avitabile</reporter>
                        <labels>
                    </labels>
                <created>Fri, 12 May 2017 18:26:28 +0000</created>
                <updated>Mon, 30 Oct 2023 23:16:54 +0000</updated>
                            <resolved>Fri, 30 Jun 2017 21:16:47 +0000</resolved>
                                                    <fixVersion>3.5.10</fixVersion>
                                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="1657043" author="ramon.fernandez" created="Fri, 25 Aug 2017 10:54:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: u&apos;jimoleary&apos;, &apos;name&apos;: u&apos;Jim OLeary&apos;, &apos;email&apos;: u&apos;jim.oleary@gmail.com&apos;}
&lt;p&gt;Message:BF-5761 delete override , &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29162&quot; title=&quot;UpdateNode implementation should only validate modified fields&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29162&quot;&gt;&lt;del&gt;SERVER-29162&lt;/del&gt;&lt;/a&gt; fixed regression in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28762&quot; title=&quot;Conditionally parse an update expression as an UpdateNode tree&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28762&quot;&gt;&lt;del&gt;SERVER-28762&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch:master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/dsi/commit/240c4c3360008ddd4c690e907d280e504cee43bc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/dsi/commit/240c4c3360008ddd4c690e907d280e504cee43bc&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1611901" author="xgen-internal-githook" created="Fri, 30 Jun 2017 21:16:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;tessavitabile&apos;, u&apos;name&apos;: u&apos;Tess Avitabile&apos;, u&apos;email&apos;: u&apos;tess.avitabile@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29162&quot; title=&quot;UpdateNode implementation should only validate modified fields&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29162&quot;&gt;&lt;del&gt;SERVER-29162&lt;/del&gt;&lt;/a&gt; UpdateNode implementation should only validate modified fields&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/07baac065147381842a172726a5f80d7e57a6ef8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/07baac065147381842a172726a5f80d7e57a6ef8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1602147" author="xgen-internal-githook" created="Tue, 20 Jun 2017 21:34:42 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;stauffec&apos;, u&apos;name&apos;: u&apos;Cristopher Stauffer&apos;, u&apos;email&apos;: u&apos;cristopher.stauffer@mongodb.com&apos;}
&lt;p&gt;Message: BF-5761: Adding overrides for update/multiUpdate tests to temporarily expect lower values until &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29162&quot; title=&quot;UpdateNode implementation should only validate modified fields&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29162&quot;&gt;&lt;del&gt;SERVER-29162&lt;/del&gt;&lt;/a&gt; is resolved.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/dsi/commit/64483f48c68f2ffd3394405ca1a0683bcd3161e2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/dsi/commit/64483f48c68f2ffd3394405ca1a0683bcd3161e2&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="397481">SERVER-29819</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="373557">SERVER-28762</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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_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>Tue, 20 Jun 2017 21:34:42 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 24 weeks, 5 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-286</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>
                            6 years, 24 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.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>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht7crj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hral2v:</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="1717">Query 2017-07-10</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|hsbun3:</customfieldvalue>

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