<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:20:09 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-4175] Sessions are never pinned for single-threaded load balanced clients</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-4175</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/5f8f6689538a39a36186285e747d3ac2fbcb27d1/source/load-balancers/load-balancers.rst#connection-pinning&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Load Balancers: Connection Pinning&lt;/a&gt; talks about session pinning, but this is under a heading for &quot;Connection Pooling&quot; so I&apos;m not sure it considers single-threaded SDAM at all.&lt;/p&gt;

&lt;p&gt;Numerous PHPC tests fail because they expect the session to be pinned (i.e. &lt;tt&gt;mongoc_client_session_get_server_id&lt;/tt&gt; returns a non-zero value). I noticed that calls to &lt;tt&gt;_mongoc_client_session_pin&lt;/tt&gt; are only made if &lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/blob/1.19.0/src/libmongoc/src/mongoc/mongoc-cluster.c#L452&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;_in_sharded_txn()&lt;/tt&gt;&lt;/a&gt; returns true, and that function does not consider LB topologies at all. Is that intentional?&lt;/p&gt;

&lt;p&gt;I imagine that pinning implicitly takes place on single-threaded load balanced clients because there is only a single connection to the LB. Even if the LB is backed by multiple mongos hosts, the client&apos;s singular connection will result in only one being used (unless the connection drops and the LB happens to route to another mongos after reconnection).&lt;/p&gt;

&lt;p&gt;With respect to multi-threaded mode (i.e. client pools), I suppose there also isn&apos;t a concern since libmongoc isn&apos;t really pooling connections. A transaction would be executed entirely through one client, which will have a single LB connection (again, one mongos).&lt;/p&gt;

&lt;p&gt;Assuming there is no bug at play here (in which case please resolve accordingly), is the correct course of action to just have any pinning-related tests exclude LB topologies?&lt;/p&gt;</description>
                <environment></environment>
        <key id="1889069">CDRIVER-4175</key>
            <summary>Sessions are never pinned for single-threaded load balanced clients</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="-1">Unassigned</assignee>
                                    <reporter username="jmikola@mongodb.com">Jeremy Mikola</reporter>
                        <labels>
                    </labels>
                <created>Mon, 4 Oct 2021 15:16:40 +0000</created>
                <updated>Fri, 27 Oct 2023 13:14:07 +0000</updated>
                            <resolved>Tue, 5 Oct 2021 14:47:10 +0000</resolved>
                                                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                        <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|hznw6v:</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>