<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:23:43 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-1619] Provide informative handshake error message when Versioned API requested from downlevel server</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-1619</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;If Versioned API is requested by the client, the driver will use the &lt;tt&gt;hello&lt;/tt&gt; command for both initial handshake and heartbeats becuase only &lt;tt&gt;hello&lt;/tt&gt; is included in API version 1, not &lt;tt&gt;isMaster&lt;/tt&gt;. Downlevel versions of MongoDB will respond with &lt;tt&gt;no such command: &apos;hello&apos;&lt;/tt&gt;, which doesn&apos;t immediately indicate to users that they&apos;re requesting Versioned API from a server that doesn&apos;t support it.&lt;/p&gt;

&lt;p&gt;If a driver requests Versioned API and the initial handshake fails, we should provide a helpful error message that includes the text &quot;Ensure that your server supports Versioned API.&quot;&lt;/p&gt;</description>
                <environment></environment>
        <key id="1654005">DRIVERS-1619</key>
            <summary>Provide informative handshake error message when Versioned API requested from downlevel server</summary>
                <type id="11" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14707&amp;avatarType=issuetype">Epic</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="james.kovacs@mongodb.com">James Kovacs</reporter>
                        <labels>
                    </labels>
                <created>Fri, 19 Mar 2021 16:57:29 +0000</created>
                <updated>Sat, 30 Apr 2022 05:12:39 +0000</updated>
                                                                <component>Stable API</component>
                                        <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="4300768" author="dbeng-pm-bot" created="Wed, 19 Jan 2022 17:32:37 +0000"  >&lt;p&gt;If you are not logged in, you can view the tickets in this epic by following &lt;a href=&quot;https://jira.mongodb.org/issues/?jql=%22Epic%20Link%22%20%3D%20DRIVERS-1619&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;this link&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="3789965" author="andreas.braun" created="Wed, 19 May 2021 07:22:18 +0000"  >&lt;p&gt;Yes, this is not only related to requireApiVersion, but the Versioned API in general. Either way, the biggest pain point was for serverless customers where the usual way of configuring the driver through the connection string doesn&apos;t work. Since serverless doesn&apos;t use requireApiVersion anymore, there is one fewer reason to do this, which means we might not have (or want) to do this before 5.0, freeing up time for other work. I&apos;m putting it back into &quot;Needs triage&quot; to discuss.&lt;/p&gt;</comment>
                            <comment id="3784569" author="jesse" created="Tue, 18 May 2021 16:14:56 +0000"  >&lt;p&gt;This ticket isn&apos;t needed now, after&#160;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-56925&quot; title=&quot;Remove requireApiVersion server parameter?&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-56925&quot;&gt;&lt;del&gt;SERVER-56925&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="3761404" author="jesse" created="Fri, 7 May 2021 17:05:04 +0000"  >&lt;p&gt;We&apos;ll have a meeting in the next 2 weeks to decide whether to &lt;b&gt;remove&lt;/b&gt; the requireApiVersion server flag, since we&apos;re not using it ourselves.&#160;Let&apos;s avoid too much work on this until we&apos;ve decided.&lt;/p&gt;</comment>
                            <comment id="3761378" author="ian@10gen.com" created="Fri, 7 May 2021 16:56:46 +0000"  >&lt;p&gt;Adding this into INIT-1 given the importance of this for the user experience as a part of adding a versioned api.&lt;/p&gt;</comment>
                            <comment id="3740517" author="andreas.braun" created="Tue, 27 Apr 2021 08:23:32 +0000"  >&lt;p&gt;After discussion with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=durran.jordan&quot; class=&quot;user-hover&quot; rel=&quot;durran.jordan&quot;&gt;durran.jordan&lt;/a&gt;, we&apos;ve decided that the SDAM, Server Selection, and SDAM monitoring specs need to be changed.&lt;/p&gt;

&lt;p&gt;The SDAM spec needs to introduce a new server type &quot;Errored&quot;, which indicates that while the handshake/heartbeat completed successfully but yielded an unexpected result (e.g. using Versioned API but &quot;hello&quot; command not found error). The list of such errors is:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;No &quot;hello&quot; command available when using Versioned API&lt;/li&gt;
	&lt;li&gt;Using Versioned API and the maxServerVersion indicates that the server does not support the versioned API&lt;/li&gt;
	&lt;li&gt;Server is running with requireApiVersion but no Api Version was declared&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Server Selection is changed to fail fast if any server in the topology is marked as &quot;Errored&quot;. The error message should indicate that this is not a selection failure, but that the topology the driver sees is not suitable for server selection (e.g. because of mixed Versioned API requirements).&lt;/p&gt;

&lt;p&gt;The SDAM monitoring spec introduces a new event when the heartbeat results in a server transitioning to the &quot;Errored&quot; type. The heartbeatFailed event is changed to no longer be used when the handshake/heartbeat results in an &lt;/p&gt;
{ok: 0}
&lt;p&gt; response. Similarly, an &lt;/p&gt;
{ok: 1}
&lt;p&gt; response does not always trigger a heartbeatSucceeded event, see example 2 in the list above.&lt;/p&gt;

&lt;p&gt;Moving back to &quot;Needs Triage&quot; so we can discuss.&lt;/p&gt;</comment>
                            <comment id="3676819" author="alexander.golin" created="Mon, 22 Mar 2021 16:36:15 +0000"  >&lt;p&gt;Triage: Andreas to investigate. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1400216">DRIVERS-1315</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1658893">CDRIVER-3936</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658895">CSHARP-3503</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658894">CXX-2210</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658896">GODRIVER-1932</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658897">JAVA-4084</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658898">NODE-3168</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658902">PHPC-1794</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658900">PYTHON-2618</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658903">RUBY-2563</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1658904">RUST-715</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="1699561">CDRIVER-3975</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699565">CSHARP-3636</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699563">CXX-2241</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699567">GODRIVER-1988</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699569">JAVA-4129</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699571">NODE-3250</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699576">PHPC-1824</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699574">PYTHON-2685</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699578">RUBY-2594</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699580">RUST-769</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1699573">MOTOR-722</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1714818">SERVER-56925</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                                        </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="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-3975'>CDRIVER-3975</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2241'>CXX-2241</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-3636'>CSHARP-3636</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-1988'>GODRIVER-1988</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4129'>JAVA-4129</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-3250'>NODE-3250</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-722'>MOTOR-722</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-2685'>PYTHON-2685</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPC-1824'>PHPC-1824</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-2594'>RUBY-2594</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUST-769'>RUST-769</a>
    </td>
    <td>Blocked</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/SWIFT-1193'>SWIFT-1193</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10860" key="com.pyxis.greenhopper.jira:gh-epic-color">
                        <customfieldname>Epic Colour</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ghx-label-14</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10858" key="com.pyxis.greenhopper.jira:gh-epic-label">
                        <customfieldname>Epic Name</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Handshake Error</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10859" key="com.pyxis.greenhopper.jira:gh-epic-status">
                        <customfieldname>Epic Status</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10640"><![CDATA[To Do]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr327j:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="919">PHP Sprint 32</customfieldvalue>
    <customfieldvalue id="4825">PHP Sprint April 19-23 2021</customfieldvalue>
    <customfieldvalue id="4826">PHP Sprint April 26-30 2021</customfieldvalue>
    <customfieldvalue id="4918">PHP Sprint April 5-9 2021</customfieldvalue>

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