<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:59:13 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-41976] Server should not attach TransientTransactionError label  to prepared transaction commands (commit) when the command fails with  LockTimeout.</title>
                <link>https://jira.mongodb.org/browse/SERVER-41976</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently when a commit command tries to commit a prepared transaction but it failed while unstashing the lock resource due to&#160;LockTimeout, then we are attaching a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/3147f5e1c37546b817934ef892d5e353170a9935/src/mongo/base/transaction_error.cpp#L40&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;TransientTransactionError label&lt;/a&gt;. This means driver will &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#retrying-transactions-that-fail-with-transienttransactionerror&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;retry the whole transactions&lt;/a&gt; and it&apos;s an undesired behavior.&lt;/p&gt;</description>
                <environment></environment>
        <key id="823499">SERVER-41976</key>
            <summary>Server should not attach TransientTransactionError label  to prepared transaction commands (commit) when the command fails with  LockTimeout.</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="13202">Works as Designed</resolution>
                                        <assignee username="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="suganthi.mani@mongodb.com">Suganthi Mani</reporter>
                        <labels>
                    </labels>
                <created>Thu, 27 Jun 2019 19:00:38 +0000</created>
                <updated>Fri, 27 Oct 2023 13:53:11 +0000</updated>
                            <resolved>Mon, 22 Jul 2019 17:05:32 +0000</resolved>
                                                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2336946" author="ratika.gandhi" created="Mon, 22 Jul 2019 17:05:32 +0000"  >&lt;p&gt;Not a bug.&lt;/p&gt;</comment>
                            <comment id="2315984" author="suganthi.mani" created="Mon, 8 Jul 2019 21:32:57 +0000"  >&lt;p&gt;When a commitTransaction cmd fails while committing a prepared transaction, the error response w/&#160;&lt;tt&gt;TransientTransactionError&lt;/tt&gt; label attached will be sent only to Transaction coordinator. And, the current behavior is that transaction coordinator will retry the commitTransaction cmd&#160; indefinitely till it succeeds. So, no way, the error response of a commitTransaction cmd&#160; for cross-shard transactions will reach the drivers.&lt;/p&gt;

&lt;p&gt;When a commitTransaction cmd fails while committing an unprepared transaction,&#160;the error response w/&#160;&lt;tt&gt;TransientTransactionError&#160;&lt;/tt&gt; label attached will reach the drivers. And, its safe for drivers to retry the transaction again with higher transaction number as they would retry with a next higher txn number and that would result in&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/16bcf466e6638b38ec99e4c980af485be0c7a0ae/src/mongo/db/transaction_participant.cpp#L1890-L1892&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;aborting&lt;/a&gt; the previously failed&#160;commitTransaction cmd or the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/16bcf466e6638b38ec99e4c980af485be0c7a0ae/src/mongo/db/kill_sessions_local.cpp#L130&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;transaction reaper would abort the failed transaction.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basically this is a harmless ticket. So, we can deprioritize this ticket.&lt;/p&gt;</comment>
                            <comment id="2306670" author="esha.maharishi@10gen.com" created="Mon, 1 Jul 2019 14:02:39 +0000"  >&lt;p&gt;Ah, I see. Yes, I agree LockTimeout should not be a transient error for commitTransaction.&lt;/p&gt;</comment>
                            <comment id="2306646" author="judah.schvimer" created="Mon, 1 Jul 2019 13:54:02 +0000"  >&lt;p&gt;This is about committing a prepared transaction, not preparing a transaction. A &lt;tt&gt;TransientTransactionError&lt;/tt&gt; label means that the transaction definitively aborted. A &lt;tt&gt;LockTimeout&lt;/tt&gt; does not mean that the transaction definitively aborted. &lt;/p&gt;

&lt;p&gt;In fact it should not be possible for a &lt;tt&gt;commitTransaction&lt;/tt&gt; command on a prepared transaction to return a &lt;tt&gt;TransientTransactionError&lt;/tt&gt; label, and as part of this ticket we should add an assertion such that we fail loudly (at least in our tests) if that happens.&lt;/p&gt;</comment>
                            <comment id="2304743" author="esha.maharishi@10gen.com" created="Fri, 28 Jun 2019 15:14:38 +0000"  >&lt;p&gt;Just curious, why is it undesired behavior?&lt;/p&gt;

&lt;p&gt;I think today it actually doesn&apos;t matter what error labels prepareTransaction attaches - the coordinator will not propagate the prepare response&apos;s label back to the client.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="790517">SERVER-41556</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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25128"><![CDATA[Replication]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 28 Jun 2019 15:14:38 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 29 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>
                            4 years, 29 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>ratika.gandhi@mongodb.com</customfieldvalue>
            <customfieldvalue>suganthi.mani@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hv8okn:</customfieldvalue>

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

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