<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:25:49 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-2530] Do not perform server selection to determine sessions support</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2530</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;Currently, the sessions spec has drivers perform server selection to determine sessions support if the support status is not currently known: &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/sessions/driver-sessions.rst#how-to-check-whether-a-deployment-supports-sessions&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/sessions/driver-sessions.rst#how-to-check-whether-a-deployment-supports-sessions&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;This approach has some known race conditions, as documented in the spec as well (&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/sessions/driver-sessions.rst#possible-race-conditions-when-checking-whether-a-deployment-supports-sessions&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/sessions/driver-sessions.rst#possible-race-conditions-when-checking-whether-a-deployment-supports-sessions&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;Drivers should update their logic to defer checking for sessions support after a connection has actually been checked out. The driver should then check that the particular server supports sessions - that is, the connection has non-null logicalSessionTimeoutMinutes.&lt;/p&gt;

&lt;p&gt;If the user supplied an explicit session and it turns out at this point sessions are not supported for the server, the driver can then raise an error. &lt;br/&gt;
If no user session was supplied (so an implicit session is used) and it turns out at this point sessions are not supported for the server, the driver can ignore the implicit session (the spec already instructs to do this.)&lt;/p&gt;

&lt;p&gt;This approach simplifies session support checking and eliminates 3 of the 4 possible race conditions around sessions. &lt;/p&gt;

&lt;p&gt;This ticket is being proposed as a subset of the original work imagined in &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2337&quot; title=&quot;Assume all &amp;gt;=3.6 servers support sessions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2337&quot;&gt;DRIVERS-2337&lt;/a&gt;. &lt;br/&gt;
This ticket also relates to &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-759&quot; title=&quot;Drivers may defer checking if a deployment supports sessions until the session&amp;#39;s first operation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-759&quot;&gt;DRIVERS-759&lt;/a&gt;, which changed the spec to permit drivers to defer sessions support checks but would still have sessions support checks performed via server selection.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;New Prose Tests&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Test that an implicit session is not sent to a server that does not support sessions&lt;/li&gt;
	&lt;li&gt;Test that `startSession` does not error but the explicit session raises a client-side error if specified for a server that does not support sessions&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; Server selection logging work &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1671&quot; title=&quot;Add log messages to Server selection spec&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1671&quot;&gt;DRIVERS-1671&lt;/a&gt; will define additional tests to confirm that no server selection is performed to determine session support.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2241042">DRIVERS-2530</key>
            <summary>Do not perform server selection to determine sessions support</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="13453" iconUrl="https://jira.mongodb.org/images/icons/status_generic.gif" description="">Implementing</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="daria.pardue@mongodb.com">Daria Pardue</assignee>
                                    <reporter username="kaitlin.mahar@mongodb.com">Kaitlin Mahar</reporter>
                        <labels>
                    </labels>
                <created>Mon, 23 Jan 2023 20:49:22 +0000</created>
                <updated>Mon, 21 Aug 2023 20:11:42 +0000</updated>
                                                                <component>Sessions</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="5237889" author="xgen-internal-githook" created="Tue, 28 Feb 2023 20:00:53 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Daria Pardue&apos;, &apos;email&apos;: &apos;daria.pardue@mongodb.com&apos;, &apos;username&apos;: &apos;dariakp&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2530&quot; title=&quot;Do not perform server selection to determine sessions support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2530&quot;&gt;DRIVERS-2530&lt;/a&gt;: Defer checking for session support until after connection checkout (#1379)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/90cfaeff64cc8d08487ac934d27e1fa267e88814&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/90cfaeff64cc8d08487ac934d27e1fa267e88814&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1429967">DRIVERS-1671</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2247309">CDRIVER-4566</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247310">CXX-2643</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247318">RUBY-3212</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247317">PHPLIB-1073</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247313">JAVA-4860</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247311">CSHARP-4504</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247312">GODRIVER-2742</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247315">MOTOR-1090</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247314">NODE-5017</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247316">PYTHON-3587</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2247319">RUST-1585</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2055184">DRIVERS-2337</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="976279">DRIVERS-759</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1326019">DRIVERS-1204</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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Drivers should implement the sessions spec changes in &lt;a href=&quot;https://github.com/mongodb/specifications/commit/90cfaeff64cc8d08487ac934d27e1fa267e88814&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;90cfaef&lt;/a&gt;, removing the server selection step for session support and relying exclusively on the `logicalSessionTimeoutMinutes` reported by the checked out connection instead. Two new prose tests are added to ensure the user-facing behavior for explicit and implicit sessions remains unchanged when communicating with a server that does not support sessions. This work is a pre-requisite for sever selection logging (&lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-1671&quot; title=&quot;Add log messages to Server selection spec&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-1671&quot;&gt;DRIVERS-1671&lt;/a&gt;), which will define additional tests to ensure no server selection is performed for session support.&lt;/p&gt;</customfieldvalue>

                        </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_23952" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Driver Compliance</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<style type='text/css'>
         #scriptField, #scriptField *{
                border: 1px solid black;
            }

            #scriptField{
                border-collapse: collapse;
            }

            #scriptField td {
                text-align: center; /* Center-align text in table cells */
            }

            #scriptField td.key {
                text-align: left; /* Left-align text in the Key column */
            }

            #scriptField a {
                text-decoration: none; /* Remove underlines from links */
                border: none; /* Remove border from links */
            }
            
            /* Add green background color to cells with FixVersion */
            #scriptField td.hasFixVersion {
                background-color: #00FF00; /* Green color code */
            }

            /* Center-align the first row headers */
            #scriptField th {
                text-align: center;
            }
        </style>
<table id='scriptField'>
  <tr>
    <th>Key</th>
    <th>Status/Resolution</th>
    <th>FixVersion</th>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CDRIVER-4566'>CDRIVER-4566</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2643'>CXX-2643</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-4504'>CSHARP-4504</a>
    </td>
    <td>Done</td>
    <td class='hasFixVersion'>2.20.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-2742'>GODRIVER-2742</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>1.13.0, 1.13.1</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4860'>JAVA-4860</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>4.10.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-5017'>NODE-5017</a>
    </td>
    <td>Done</td>
    <td class='hasFixVersion'>5.2.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-1090'>MOTOR-1090</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-3587'>PYTHON-3587</a>
    </td>
    <td>Done</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPLIB-1073'>PHPLIB-1073</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-3212'>RUBY-3212</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUST-1585'>RUST-1585</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.5.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/SWIFT-1697'>SWIFT-1697</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_18359" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Program Manager</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>jessica.sigafoos@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY24Q1</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1agzs:</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>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 28 Feb 2023 00:00:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>