<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:35:53 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-77542] Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions</title>
                <link>https://jira.mongodb.org/browse/SERVER-77542</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Unlike user operations which transparently handle both WriteConflictException (WCE) and (TemprorarilyUnavailableException) TUE via the &lt;a href=&quot;https://github.com/10gen/mongo/blob/ce1bcd69edc47e86f7b5f6f7bfec6b5c70687414/src/mongo/db/concurrency/exception_util.h#L128&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;writeConflictRetry&lt;/a&gt; helper, internal operations tend to use custom code that handles WCE&apos;s only; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ce1bcd69edc47e86f7b5f6f7bfec6b5c70687414/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp#L984-L986&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;oplog truncation&lt;/a&gt; is an example. Excerpt from an internal stress test:&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;{&quot;t&quot;:{&quot;$date&quot;:&quot;2023-05-12T18:06:13.149+00:00&quot;},&quot;s&quot;:&quot;F&quot;,  &quot;c&quot;:&quot;STORAGE&quot;,  &quot;id&quot;:6761100, &quot;ctx&quot;:&quot;OplogCapMaintainerThread-local.oplog.rs&quot;,&quot;msg&quot;:&quot;Error in OplogCapMaintainerThread&quot;,&quot;attr&quot;:{&quot;error&quot;:{&quot;code&quot;:365,&quot;codeName&quot;:&quot;TemporarilyUnavailable&quot;,&quot;errmsg&quot;:&quot;-31800: oldest pinned transaction ID rolled back for eviction&quot;}}}&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;We should audit the code for missing TUE handling and consider adopting the writeConflictRetry helper or implementing an equivalent one for internal operations.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2352632">SERVER-77542</key>
            <summary>Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions</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="josef.ahmad@mongodb.com">Josef Ahmad</assignee>
                                    <reporter username="josef.ahmad@mongodb.com">Josef Ahmad</reporter>
                        <labels>
                    </labels>
                <created>Mon, 29 May 2023 08:24:45 +0000</created>
                <updated>Sun, 29 Oct 2023 21:20:48 +0000</updated>
                            <resolved>Fri, 1 Sep 2023 11:01:59 +0000</resolved>
                                                    <fixVersion>7.2.0-rc0</fixVersion>
                    <fixVersion>7.0.2</fixVersion>
                    <fixVersion>7.1.0-rc2</fixVersion>
                                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="5687430" author="xgen-internal-githook" created="Thu, 7 Sep 2023 17:54:03 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Josef Ahmad&apos;, &apos;email&apos;: &apos;josef.ahmad@mongodb.com&apos;, &apos;username&apos;: &apos;josefahmad&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-77542&quot; title=&quot;Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-77542&quot;&gt;&lt;del&gt;SERVER-77542&lt;/del&gt;&lt;/a&gt; Handle TemporarilyUnavailable and TransactionTooLargeForCache as write conflicts for internal operations&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 2ed9c7d078e499a02f67c8a8199c4d84fe8dedd9)&lt;br/&gt;
Branch: v7.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bed7540a361f88e17d086e1698ca42bd995c9132&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bed7540a361f88e17d086e1698ca42bd995c9132&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5687110" author="xgen-internal-githook" created="Thu, 7 Sep 2023 16:37:30 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Josef Ahmad&apos;, &apos;email&apos;: &apos;josef.ahmad@mongodb.com&apos;, &apos;username&apos;: &apos;josefahmad&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-77542&quot; title=&quot;Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-77542&quot;&gt;&lt;del&gt;SERVER-77542&lt;/del&gt;&lt;/a&gt; Make internal ops handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 02d317cf8ab124ec10880d2cd6232035c731e40e)&lt;br/&gt;
Branch: v7.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d8b33e75cb965b5adb9b405198b7837b4757a6b9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d8b33e75cb965b5adb9b405198b7837b4757a6b9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5682894" author="xgen-internal-githook" created="Wed, 6 Sep 2023 13:10:13 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Josef Ahmad&apos;, &apos;email&apos;: &apos;josef.ahmad@mongodb.com&apos;, &apos;username&apos;: &apos;josefahmad&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-77542&quot; title=&quot;Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-77542&quot;&gt;&lt;del&gt;SERVER-77542&lt;/del&gt;&lt;/a&gt; Handle TemporarilyUnavailable and TransactionTooLargeForCache as write conflicts for internal operations&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 2ed9c7d078e499a02f67c8a8199c4d84fe8dedd9)&lt;br/&gt;
Branch: v7.1&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c90c98cb81a0e1d2f8609c3e60f4db833e099433&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c90c98cb81a0e1d2f8609c3e60f4db833e099433&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5674186" author="xgen-internal-githook" created="Fri, 1 Sep 2023 11:00:51 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Josef Ahmad&apos;, &apos;email&apos;: &apos;josef.ahmad@mongodb.com&apos;, &apos;username&apos;: &apos;josefahmad&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-77542&quot; title=&quot;Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-77542&quot;&gt;&lt;del&gt;SERVER-77542&lt;/del&gt;&lt;/a&gt; Handle TemporarilyUnavailable and TransactionTooLargeForCache as write conflicts for internal operations&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2ed9c7d078e499a02f67c8a8199c4d84fe8dedd9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2ed9c7d078e499a02f67c8a8199c4d84fe8dedd9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5617286" author="josef.ahmad" created="Mon, 7 Aug 2023 15:13:25 +0000"  >&lt;p&gt;Reopening due to an issue with &lt;a href=&quot;https://github.com/10gen/mongo/blob/73e255308e5ea944dfdf967df982274af7b09870/src/mongo/db/concurrency/exception_util.cpp#L91-L95&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;converting the TemporarilyUnavailableException into a WriteConflictException&lt;/a&gt;. We should handle the TUE as a WCE instead of throwing a WCE, otherwise the write conflict escapes to the caller.&lt;/p&gt;</comment>
                            <comment id="5575963" author="josef.ahmad" created="Wed, 19 Jul 2023 06:04:13 +0000"  >&lt;p&gt;This ticket introduces a base StorageUnavailableException encompassing WriteConflictException, TemporarilyUnavailableException, and TransactionTooLargeForCacheException. This base exception is used to catch the three derived exceptions for internal operations where the standard policy implemented by the writeConflictRetry helper does not apply. This is an internal change only; there are no externally-visible changes.&lt;/p&gt;</comment>
                            <comment id="5575535" author="xgen-internal-githook" created="Tue, 18 Jul 2023 21:51:22 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Josef Ahmad&apos;, &apos;email&apos;: &apos;josef.ahmad@mongodb.com&apos;, &apos;username&apos;: &apos;josefahmad&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-77542&quot; title=&quot;Internal operations should handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-77542&quot;&gt;&lt;del&gt;SERVER-77542&lt;/del&gt;&lt;/a&gt; Make internal ops handle TemporarilyUnavailable and TransactionTooLargeForCache exceptions&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/02d317cf8ab124ec10880d2cd6232035c731e40e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/02d317cf8ab124ec10880d2cd6232035c731e40e&lt;/a&gt;&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>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2427917">SERVER-80461</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1982957">SERVER-63620</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2384759">SERVER-78702</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="26243"><![CDATA[v7.1]]></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 2023 16:28:02 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        21 weeks, 6 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>
                            21 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>120.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>josef.ahmad@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2b7pz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i07q34:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7534">Execution EMEA Team 2023-06-26</customfieldvalue>
    <customfieldvalue id="7535">Execution EMEA Team 2023-07-10</customfieldvalue>
    <customfieldvalue id="7536">Execution EMEA Team 2023-07-24</customfieldvalue>
    <customfieldvalue id="7539">Execution EMEA Team 2023-09-04</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|i2atvb:</customfieldvalue>

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