<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:24 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-1968] Single-threaded SDAM should construct a handshake command when reconnecting after a monitoring or application error/timeout</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1968</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-color: #21313c;border-style: solid;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;While investigating CLOUDP-104364, it was mentioned that the Atlas serverless proxy only outputs &lt;tt&gt;serviceId&lt;/tt&gt; for the initial handshake, which is determined by the existence of a &lt;tt&gt;client&lt;/tt&gt; field in the &lt;tt&gt;hello&lt;/tt&gt; command.&lt;/p&gt;

&lt;p&gt;This uncovered a subtle bug in libmongoc (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4207&quot; title=&quot;mongoc_topology_scanner_node_t.last_failed ignores errors outside of monitoring for singled-threaded SDAM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4207&quot;&gt;&lt;del&gt;CDRIVER-4207&lt;/del&gt;&lt;/a&gt;). Errors and timeouts encountered during monitoring would typically result in libmongoc constructing a handshake command when reconnecting; however, errors/timeouts encountered during application usage do not. In single-threaded SDAM, the monitoring and application sockets are one and the same.&lt;/p&gt;

&lt;p&gt;Some suggestions for this ticket:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;If not already noted in the SDAM spec, single-threaded implementations consider monitoring and application errors the same for purposes of sending a handshake &lt;tt&gt;hello&lt;/tt&gt; during reconnection.&lt;/li&gt;
	&lt;li&gt;Consider noting the Atlas serverless proxy behavior in some drivers specification. I realize we don&apos;t have a serverless spec (just &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/serverless-testing/README.rst&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Serverless Testing&lt;/a&gt;), but perhaps this warrants a note in either the SDAM or Handshake specs.&lt;/li&gt;
&lt;/ul&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;Single-threaded SDAM implementations.&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 connected to Atlas Serverless that encounter an application error/timeout might get blocked by client-side load balancer errors due to a missing &lt;tt&gt;serviceId&lt;/tt&gt; in subsequent &lt;tt&gt;hello&lt;/tt&gt; responses.&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;This may occur after any application error/timeout in a single-threaded driver connected to Atlas Serverless.&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;Application will likely be blocked for the lifetime of the MongoClient.&lt;/p&gt;

&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;

&lt;p&gt;The spec change itself is not urgent and does not block libmongoc from fixing its bug.&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, but it does affect serverless testing since our spec tests trigger socket errors via fail points (see: &lt;a href=&quot;https://jira.mongodb.org/browse/PHPLIB-717&quot; title=&quot;Test Serverless behind a load balancer to prevent test breakage&quot; class=&quot;issue-link&quot; data-issue-key=&quot;PHPLIB-717&quot;&gt;&lt;del&gt;PHPLIB-717&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="1913328">DRIVERS-1968</key>
            <summary>Single-threaded SDAM should construct a handshake command when reconnecting after a monitoring or application error/timeout</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="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="12300">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jmikola@mongodb.com">Jeremy Mikola</reporter>
                        <labels>
                    </labels>
                <created>Fri, 29 Oct 2021 17:01:41 +0000</created>
                <updated>Tue, 30 Nov 2021 19:45:37 +0000</updated>
                            <resolved>Tue, 30 Nov 2021 19:45:30 +0000</resolved>
                                                        <component>Load Balancer</component>
                    <component>SDAM</component>
                    <component>Serverless</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4222081" author="jmikola@gmail.com" created="Tue, 30 Nov 2021 19:45:18 +0000"  >&lt;p&gt;I spoke to &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.albertson&quot; class=&quot;user-hover&quot; rel=&quot;kevin.albertson&quot;&gt;kevin.albertson&lt;/a&gt; about this and &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4207&quot; title=&quot;mongoc_topology_scanner_node_t.last_failed ignores errors outside of monitoring for singled-threaded SDAM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4207&quot;&gt;&lt;del&gt;CDRIVER-4207&lt;/del&gt;&lt;/a&gt; is sufficient to get this resolved in libmongoc. There should be no need for any spec clarification.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1913321">CDRIVER-4207</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1852160">PHPLIB-717</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_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10940"><![CDATA[Not Needed]]></customfieldvalue>

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