<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:26:20 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-2750] Clarify connection checkout timeout when timeoutMS is enabled</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2750</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;As specified, CSOT calculates a timeout for server selection and connection checkout.&#160; The timeout for server selection is the min(timeoutMS, serverSelectionTimeoutMS).&#160; The timeout calculated for connection checkout is currently defined as the remaining timeout calculated for server selection.&#160; Consequently, when CSOT is enabled, serverSelectionTimeoutMS applies to both server selection and connection checkout.&lt;/p&gt;

&lt;p&gt;There was &lt;a href=&quot;https://mongodb.slack.com/archives/C05P3MKT23E/p1697144048540919&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;discussion in the CSOT channel&lt;/a&gt; that came to the conclusion that&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Go and Python both missed this requirement in their implementation&lt;/li&gt;
	&lt;li&gt;This behavior is unexpected and surprising to users and can lead to an increase in timeouts&lt;/li&gt;
	&lt;li&gt;If we want a single timeout to govern both server selection and connection checkout, &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1262&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/DRIVERS-1262&lt;/a&gt; is a preferable solution&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The spec should be updated to state that the timeout for connection checkout is the remaining timeoutMS.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;See the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/client-side-operations-timeout/client-side-operations-timeout.rst#server-selection&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Server Selection section of the CSOT&lt;/a&gt; spec for details.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;

&lt;p&gt;Drivers engineers implementing CSOT, users who may see increased connection checkout timeout behavior when CSOT is enabled.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;

&lt;p&gt;Users might see an increase in connection checkout timeouts.&#160; For retryable reads/writes, these should be retried so long as their is sufficient timeoutMS remaining but for non-retryable operations, users might see an increase in timeouts.&#160; These timeouts would be confusing because depending on the value of `serverSelectionTimeoutMS` and `timeoutMS`, an operation can fail before `timeoutMS` has expired.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;

&lt;p&gt;Unsure.&#160; Go and Python haven&apos;t implemented the logic as written in the spec.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;

&lt;p&gt;There is the possibility of an increased number of timeouts / connection checkout failures.&lt;/p&gt;

&lt;p&gt;&lt;font color=&quot;#1a1a1a&quot;&gt;Is this issue urgent?&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Yes, we want this clarified as soon as possible.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;

&lt;p&gt;no.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;

&lt;p&gt;no.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;AcceptanceCriteria&quot;&gt;&lt;/a&gt;&lt;b&gt;Acceptance Criteria&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Clarify the intended timeout for connection checkout.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2477974">DRIVERS-2750</key>
            <summary>Clarify connection checkout timeout when timeoutMS is enabled</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="10049" iconUrl="https://jira.mongodb.org/images/icons/statuses/information.png" description="">Needs Triage</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="bailey.pearson@mongodb.com">Bailey Pearson</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 Oct 2023 17:33:01 +0000</created>
                <updated>Tue, 2 Jan 2024 18:24:39 +0000</updated>
                                                                <component>CSOT</component>
                                        <votes>0</votes>
                                    <watches>4</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_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|i2ek1o:</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>