<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:38 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>[DRIVERS-2065] Session can be reused after tx abort fails</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2065</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#endsession-changes&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#endsession-changes&lt;/a&gt; says:&lt;/p&gt;

&lt;p&gt;&amp;gt; endSession changes&lt;br/&gt;
&amp;gt;&lt;br/&gt;
&amp;gt; This method ends a ClientSession. Drivers MUST call abortTransaction if this session is in the &quot;transaction in progress&quot; state in order to release resources on the server. Drivers MUST ignore any errors raised by abortTransaction while ending a session.&lt;/p&gt;

&lt;p&gt;In a driver implementing server session pool, endSession returns the session to the pool rather than ends it. The session becomes available for future use.&lt;/p&gt;

&lt;p&gt;If a session had a transaction on it, and aborting the transaction failed, should the session still be returned to the pool? I think in this case the session should be discarded.&lt;/p&gt;</description>
                <environment></environment>
        <key id="773010">DRIVERS-2065</key>
            <summary>Session can be reused after tx abort fails</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="oleg.pudeyev@mongodb.com">Oleg Pudeyev</reporter>
                        <labels>
                    </labels>
                <created>Tue, 21 May 2019 15:48:20 +0000</created>
                <updated>Thu, 31 Mar 2022 13:50:10 +0000</updated>
                                                                <component>Sessions</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2412997" author="esha.bhargava" created="Mon, 9 Sep 2019 16:06:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=oleg.pudeyev&quot; class=&quot;user-hover&quot; rel=&quot;oleg.pudeyev&quot;&gt;oleg.pudeyev&lt;/a&gt; can you talk to Shane and get more details on this or if this is handled by SPEC-1159&lt;/p&gt;</comment>
                            <comment id="2295281" author="shane.harvey" created="Mon, 24 Jun 2019 18:05:24 +0000"  >&lt;blockquote&gt;&lt;p&gt;If a session had a transaction on it, and aborting the transaction failed, should the session still be returned to the pool? I think in this case the session should be discarded.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I think the work here is to determine whether an idle transaction on the server can block future operations or have any other undesirable effects. Let&apos;s assume server session S is used for a transaction, the abort fails, and the transaction is left open on the server. Let&apos;s also assume that the very next operation reuses server session S. From the research in SPEC-1159 I believe the operations that will complete normally are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;a non-transactional read&lt;/li&gt;
	&lt;li&gt;a non-transactional write which does not conflict with the transaction&apos;s writes&lt;/li&gt;
	&lt;li&gt;an operation that starts a multi-document transaction because it will abort the previous transaction on S.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Operations that will block are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;a non-transactional write which conflicts with the transaction&apos;s writes will block until the transaction times out because the server internally retries such writes on WriteConflict errors.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Operations I&apos;m not sure of (to be determined):&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;a retryable write. I suspect this will behave the same as an operation that starts a multi-document transaction.&lt;/li&gt;
	&lt;li&gt;DDL operations. create, drop, createIndex, etc. I suspect they will block until the transaction times out.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="2295053" author="ian@10gen.com" created="Mon, 24 Jun 2019 16:44:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=shane.harvey&quot; class=&quot;user-hover&quot; rel=&quot;shane.harvey&quot;&gt;shane.harvey&lt;/a&gt; can you comment on whether there&apos;s remaining work here that must be done prior to a 4.2 compatible release given the work that already landed in SPEC-1159?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10748"><![CDATA[Needed]]></customfieldvalue>

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