<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:21:44 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>[CDRIVER-4718] Transactions executed on a load balancer do not specify a recoveryToken</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-4718</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;h4&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;Summary&lt;/h4&gt;

&lt;p&gt;By design, libmongoc does not pin sessions for transactions executed against a load balanced topology. This is because clients are pooled instead of connections, and each client only maintains a single socket per server (one for the case of a load balancer).&lt;/p&gt;

&lt;p&gt;Although the rules for &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#pinning-in-load-balancer-mode&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;pinning in load balancer mode&lt;/a&gt; may not apply, rules for the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#recoverytoken-field&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;recoveryToken field&lt;/a&gt; should apply to both sharded and load balanced topologies. When connected to a load balancer, libmongoc does not appear to ever send a &lt;tt&gt;recoveryToken&lt;/tt&gt; field in outgoing &lt;tt&gt;commitTransaction&lt;/tt&gt; or &lt;tt&gt;abortTransaction&lt;/tt&gt; commands. This was observed when testing the PHP driver with legacy transaction spec tests, which were recently modified to add &quot;load-balanced&quot; to the list of supported topologies for &lt;tt&gt;runOn&lt;/tt&gt; requirements (&lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2713&quot; title=&quot;Permit legacy transaction tests to run on load-balanced topologies and Atlas Serverless&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2713&quot;&gt;DRIVERS-2713&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;According to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.albertson%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;kevin.albertson@mongodb.com&quot;&gt;kevin.albertson@mongodb.com&lt;/a&gt;, libmongoc&apos;s current behavior is:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;recoveryToken is sent if it was previously stored.&lt;/li&gt;
	&lt;li&gt;Storing recoveryToken requires &lt;tt&gt;_in_sharded_txn()&lt;/tt&gt; be true.&lt;/li&gt;
	&lt;li&gt;being true requires topology type MONGOC_TOPOLOGY_SHARDED (not MONGOC_TOPOLOGY_LOAD_BALANCED)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This may be indicative of a bug.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2434459">CDRIVER-4718</key>
            <summary>Transactions executed on a load balancer do not specify a recoveryToken</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="kevin.albertson@mongodb.com">Kevin Albertson</assignee>
                                    <reporter username="jmikola@mongodb.com">Jeremy Mikola</reporter>
                        <labels>
                    </labels>
                <created>Tue, 5 Sep 2023 18:12:41 +0000</created>
                <updated>Sat, 28 Oct 2023 11:27:46 +0000</updated>
                            <resolved>Tue, 17 Oct 2023 19:23:10 +0000</resolved>
                                                    <fixVersion>1.25.0</fixVersion>
                    <fixVersion>1.24.5</fixVersion>
                                    <component>Transactions</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="5785969" author="xgen-internal-githook" created="Tue, 17 Oct 2023 19:22:56 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4718&quot; title=&quot;Transactions executed on a load balancer do not specify a recoveryToken&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4718&quot;&gt;&lt;del&gt;CDRIVER-4718&lt;/del&gt;&lt;/a&gt; store `recoveryToken` for Load Balanced topology (#1417)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;add regression test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;format mongoc-cluster.c&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;store recoveryToken for loadBalanced topology&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;make `_in_sharded_txn` static&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;use `static`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kyle Kloberdanz &amp;lt;kyle.kloberdanz@mongodb.com&amp;gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;removing redundant calls to `_mongoc_topology_get_type`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kyle Kloberdanz &amp;lt;kyle.kloberdanz@mongodb.com&amp;gt;&lt;br/&gt;
Branch: r1.24&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/3fec27d07e9903edf7fdd4b12849e7afa1de9fe6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/3fec27d07e9903edf7fdd4b12849e7afa1de9fe6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5785962" author="xgen-internal-githook" created="Tue, 17 Oct 2023 19:19:59 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4718&quot; title=&quot;Transactions executed on a load balancer do not specify a recoveryToken&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4718&quot;&gt;&lt;del&gt;CDRIVER-4718&lt;/del&gt;&lt;/a&gt; store `recoveryToken` for Load Balanced topology (#1417)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;add regression test&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;format mongoc-cluster.c&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;store recoveryToken for loadBalanced topology&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;make `_in_sharded_txn` static&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;use `static`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kyle Kloberdanz &amp;lt;kyle.kloberdanz@mongodb.com&amp;gt;&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;removing redundant calls to `_mongoc_topology_get_type`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kyle Kloberdanz &amp;lt;kyle.kloberdanz@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/b39e2ebedc65fac7c28f935e12a83df32ac30adf&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/b39e2ebedc65fac7c28f935e12a83df32ac30adf&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2432821">PHPLIB-1228</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2432808">DRIVERS-2713</issuekey>
        </issuelink>
                            </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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0w3yr:r</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>