<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:48:10 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-38175] Invariant on error codes with ErrorExtraInfo for OperationContext markKilled() and timeout</title>
                <link>https://jira.mongodb.org/browse/SERVER-38175</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The OperationContext class accepts an&#160;ErrorCodes::Error for markKilled() and deadline-setting methods. This error code may be converted to a Status object on&#160;checkForInterruptNoAssert() or&#160;waitForConditionOrInterruptNoAssertUntil() call. When the error code is one that is associated with an ErrorExtraInfo object, Status construction will fail as we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4faca08a32b89c399785e3de0bf6f928482d83f3/src/mongo/base/status.cpp#L57-L70&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;expect Status construction&lt;/a&gt;&#160;to either include a subclass of ErrorExtraInfo or a BSONObj from which it can be serialized.&#160;&lt;/p&gt;

&lt;p&gt;Until a use case comes up, add an invariant to prevent passing an error code with extra info&lt;/p&gt;</description>
                <environment></environment>
        <key id="635011">SERVER-38175</key>
            <summary>Invariant on error codes with ErrorExtraInfo for OperationContext markKilled() and timeout</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="13201">Fixed</resolution>
                                        <assignee username="mira.carey@mongodb.com">Mira Carey</assignee>
                                    <reporter username="james.wahlin@mongodb.com">James Wahlin</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Nov 2018 14:23:14 +0000</created>
                <updated>Mon, 8 Jan 2024 15:23:04 +0000</updated>
                            <resolved>Wed, 6 Mar 2019 16:57:22 +0000</resolved>
                                    <version>4.1.5</version>
                                    <fixVersion>4.1.9</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2172848" author="xgen-internal-githook" created="Wed, 6 Mar 2019 16:57:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Carey&apos;, &apos;username&apos;: &apos;hanumantmk&apos;, &apos;email&apos;: &apos;jcarey@argv.me&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38175&quot; title=&quot;Invariant on error codes with ErrorExtraInfo for OperationContext markKilled() and timeout&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38175&quot;&gt;&lt;del&gt;SERVER-38175&lt;/del&gt;&lt;/a&gt; invariant on markKill w extra info&lt;/p&gt;

&lt;p&gt;The OperationContext class accepts an ErrorCodes::Error for markKilled()&lt;br/&gt;
and deadline-setting methods. This error code may be converted to a&lt;br/&gt;
Status object on checkForInterruptNoAssert() or&lt;br/&gt;
waitForConditionOrInterruptNoAssertUntil() call. When the error code is&lt;br/&gt;
one that is associated with an ErrorExtraInfo object, Status&lt;br/&gt;
construction will fail as we expect Status construction to either&lt;br/&gt;
include a subclass of ErrorExtraInfo or a BSONObj from which it can be&lt;br/&gt;
serialized.&lt;/p&gt;

&lt;p&gt;Until a use case comes up, add an invariant to prevent passing an error&lt;br/&gt;
code with extra info&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/39b7722f44e2124ad46c19f95d4059985e7d4132&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/39b7722f44e2124ad46c19f95d4059985e7d4132&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2166100" author="james.wahlin@10gen.com" created="Thu, 28 Feb 2019 13:29:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt; - while working on &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37124&quot; title=&quot;Retry full upsert path when duplicate key exception matches exact query predicate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37124&quot;&gt;&lt;del&gt;SERVER-37124&lt;/del&gt;&lt;/a&gt; and making DuplicateKey an error with an ErrorExtraInfo object I encountered this failure. I believe it was on checkForInterruptNoAssert() call. It turned out that the path setting DuplicateKey was doing so for an error that was not actually a DuplicateKey scenario, so I addressed by changing the error code. Given that, I think it is fine to invariant on entry. We can always adjust later if a use case arises that calls for it.&lt;/p&gt;</comment>
                            <comment id="2165428" author="jason.carey" created="Wed, 27 Feb 2019 22:19:19 +0000"  >&lt;p&gt;&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;, do you have a use case where you&apos;d like to kill an op with an extra info status?&lt;/p&gt;

&lt;p&gt;Or is this pointing out that if you do (kill with a code), that checkForInterrupt calls with fassert / throw a special exception afterwards?&lt;/p&gt;

&lt;p&gt;If the latter, I might be inclined to solve the problem by invariant&apos;ing coming in, rather than making the machinery more flexible (as I&apos;m not sure it&apos;s actually a good idea to use the opCtx kill machinery with non-interruption codes)&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="603868">SERVER-37124</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="631482">SERVER-38038</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>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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>Wed, 27 Feb 2019 22:19:19 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 49 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_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>
                            4 years, 49 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
            <customfieldvalue>mira.carey@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hud2wf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu38rr:</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="2705">Service Arch 2018-12-31</customfieldvalue>
    <customfieldvalue id="2738">Service Arch 2019-01-14</customfieldvalue>
    <customfieldvalue id="2739">Service Arch 2019-01-28</customfieldvalue>
    <customfieldvalue id="2794">Service Arch 2019-02-11</customfieldvalue>
    <customfieldvalue id="2795">Service Arch 2019-02-25</customfieldvalue>
    <customfieldvalue id="2856">Service Arch 2019-03-11</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|hucp5r:</customfieldvalue>

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