<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:02:56 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>[DOCS-11493] Document which errors abort transactions</title>
                <link>https://jira.mongodb.org/browse/DOCS-11493</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>&lt;p&gt;We knew when we designed transactions that some errors would cause a transaction to abort. For example, a write conflict, or a transaction that has been open too long and includes too many writes. Additionally there are surprising scenarios that we didn&apos;t originally intend. For example, a DuplicateKeyError aborts the transaction, see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34059&quot; title=&quot;DuplicateKeyError aborts transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34059&quot;&gt;&lt;del&gt;SERVER-34059&lt;/del&gt;&lt;/a&gt;. Let&apos;s find all the cases where a server error aborts the transaction.&lt;/p&gt;</description>
                <environment></environment>
        <key id="516926">DOCS-11493</key>
            <summary>Document which errors abort transactions</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                            <label>errors</label>
                            <label>transactions</label>
                    </labels>
                <created>Mon, 26 Mar 2018 21:22:53 +0000</created>
                <updated>Mon, 30 Oct 2023 21:00:17 +0000</updated>
                            <resolved>Tue, 3 Apr 2018 22:49:55 +0000</resolved>
                                                    <fixVersion>Server_Docs_20231030</fixVersion>
                                    <component>manual</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="5549979" author="JIRAUSER1269344" created="Fri, 7 Jul 2023 11:30:07 +0000"  >&lt;p&gt;So where can I could I learn about all errors which could abort a transaction?&#160;&lt;/p&gt;

&lt;p&gt;It would be useful to know about any such cases since, at least in the case of duplicate key error, moving code from running outside a transaction to with one, requires a refactor (since outside a tx I can recover from a duplicate key error, while within tx I cannot). It would be great to know if there are any other such cases. Thanks!&lt;/p&gt;</comment>
                            <comment id="1854531" author="kay.kim@10gen.com" created="Wed, 4 Apr 2018 00:04:32 +0000"  >&lt;p&gt;The comment here is fine as it&apos;s linked to the txn documentation ticket, which also has the link to the ticket that aborted transactions are still audited.  When txn docs start, the initial scoping will be to audit the linked tickets and cull the comments/descriptions so that we can group/combine tickets and update the txn ticket.&lt;/p&gt;

</comment>
                            <comment id="1854485" author="shannon.bradshaw@10gen.com" created="Tue, 3 Apr 2018 22:52:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kay.kim&quot; class=&quot;user-hover&quot; rel=&quot;kay.kim&quot;&gt;kay.kim&lt;/a&gt;, where did you / do you want to capture &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=spencer&quot; class=&quot;user-hover&quot; rel=&quot;spencer&quot;&gt;spencer&lt;/a&gt;&apos;s comment so that we roll it into the transactions docs?&lt;/p&gt;</comment>
                            <comment id="1854481" author="spencer" created="Tue, 3 Apr 2018 22:49:55 +0000"  >&lt;p&gt;We decided today that we won&apos;t list exactly which error codes abort transactions and which don&apos;t, since those are subject to change over time.  Instead we&apos;ll focus the docs around how users should respond to errors, which is that they should always try to abort the transaction when they receive an error.&lt;/p&gt;</comment>
                            <comment id="1852937" author="spencer" created="Mon, 2 Apr 2018 23:36:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=alyson.cabral&quot; class=&quot;user-hover&quot; rel=&quot;alyson.cabral&quot;&gt;alyson.cabral&lt;/a&gt;, do you think if a user sends a malformed request, or an illegal operation of some kind (for example trying to run dropCollection within a transaction, which isn&apos;t supported), the transaction should survive that request?  Or should it implicitly abort the transaction, since &lt;b&gt;almost all&lt;/b&gt; errors are going to implicitly abort the transaction, we might as well make it so &lt;b&gt;all&lt;/b&gt; errors do so it&apos;s consistent and easy to understand?&lt;/p&gt;

&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jesse&quot; class=&quot;user-hover&quot; rel=&quot;jesse&quot;&gt;jesse&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1845855" author="spencer" created="Mon, 26 Mar 2018 21:35:13 +0000"  >&lt;p&gt;FailedToParse, InvalidOptions, and IllegalOperation are probably the only errors I could conceive of us leaving the transaction open on.  But if those are the only ones we&apos;re going to do it for, I kind of feel like it may be simpler not to do it for anything, then we have the simple story that all errors within a transaction abort that transaction.&lt;/p&gt;</comment>
                            <comment id="1845849" author="jesse" created="Mon, 26 Mar 2018 21:31:52 +0000"  >&lt;p&gt;Even syntax errors like:&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;{find: &quot;collection&quot;, filter: {&quot;$badOperator&quot;: 1}}&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;I&apos;m just making sure we really mean &lt;b&gt;all&lt;/b&gt;&lt;/p&gt;</comment>
                            <comment id="1845836" author="spencer" created="Mon, 26 Mar 2018 21:28:21 +0000"  >&lt;p&gt;Currently &lt;b&gt;all&lt;/b&gt; errors abort the transaction.  If we want, we can add a whitelist to the server to leave the transaction open on some error codes, but that work isn&apos;t currently planned.  DuplicateKey was the main error I had been thinking would be valuable to keep the transaction open on, but we hit a technical roadblock that prevents us from keeping the transaction open on that error.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="514832">SERVER-34059</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="518362">DOCS-11505</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>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 26 Mar 2018 21:24:59 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        30 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>DOCS-11003</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>emet.ozar@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            30 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>jesse@mongodb.com</customfieldvalue>
            <customfieldvalue>adrian.gierakowski@deversifi.com</customfieldvalue>
            <customfieldvalue>kay.kim@mongodb.com</customfieldvalue>
            <customfieldvalue>shannon.bradshaw</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|httm0v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htkwn3:</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_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.5</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_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htt88v:</customfieldvalue>

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