<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:35:23 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>[GODRIVER-976] Connect to passing hosts if one host fails SRV verification</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-976</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;Currently, if one host retrieved from SRV DNS records fails verification we don&apos;t connect to any of the returned hosts.  According to the spec, we should connect to the ones that pass. &lt;/p&gt;</description>
                <environment></environment>
        <key id="741235">GODRIVER-976</key>
            <summary>Connect to passing hosts if one host fails SRV verification</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="benji.rewis@mongodb.com">Benji Rewis</assignee>
                                    <reporter username="isabella.siu@mongodb.com">Isabella Siu</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Apr 2019 18:07:08 +0000</created>
                <updated>Fri, 27 Oct 2023 13:16:34 +0000</updated>
                            <resolved>Mon, 8 Aug 2022 19:05:56 +0000</resolved>
                                                                    <component>Core API</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4735723" author="benji.rewis" created="Mon, 8 Aug 2022 19:05:48 +0000"  >&lt;p&gt;The behavior described is still present in the driver but is correct according to the spec.&lt;/p&gt;

&lt;p&gt;There are two types of SRV polling that happen within the Go driver. The first is for initial seedlist discovery and is done with the call to &lt;tt&gt;ParseHosts&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/blob/master/x/mongo/driver/connstring/connstring.go#L310&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. The second is for mongos discovery and is done with the call to &lt;tt&gt;ParseHosts&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/blob/master/x/mongo/driver/topology/topology.go#L591&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. The former passes a value of &lt;tt&gt;stopOnErr&lt;/tt&gt; true and the latter passes a value of &lt;tt&gt;stopOnErr&lt;/tt&gt; false. &lt;tt&gt;stopOnErr&lt;/tt&gt; is used in &lt;tt&gt;fetchSeedlistFromSRV&lt;/tt&gt;&#160;to determine whether SRV polling should cease upon receiving an error from &lt;tt&gt;validateSRVResult&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/initial-dns-seedlist-discovery/initial-dns-seedlist-discovery.rst#querying-dns&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;initial DNS seedlist discovery specification&lt;/a&gt; states that we should error on SRV verification failure (&lt;tt&gt;stopOnErr&lt;/tt&gt; should be true):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A driver MUST verify that the host names returned through SRV records have the same parent&#160;{domainname}. Drivers MUST raise an error and MUST NOT initiate a connection to any returned host name which does not share the same {domainname}.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/polling-srv-records-for-mongos-discovery/polling-srv-records-for-mongos-discovery.rst#implementation&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;polling SRV records for mongos discovery specification&lt;/a&gt; states that we should &lt;b&gt;not&lt;/b&gt; error on SRV verification failure (&lt;tt&gt;stopOnErr&lt;/tt&gt; should be false):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A driver MUST verify that the host names returned through SRV records have the same parent&#160;{domainname}.&#160;When this verification fails, a driver: ... MUST NOT raise an error.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                            <comment id="2218420" author="ian@10gen.com" created="Thu, 18 Apr 2019 20:11:44 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=isabella.siu&quot; class=&quot;user-hover&quot; rel=&quot;isabella.siu&quot;&gt;isabella.siu&lt;/a&gt; to also file a SPEC ticket so we add a prose test for all drivers.&lt;/p&gt;</comment>
                    </comments>
                    <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|hr6k64:w</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>