<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:17:09 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>[CDRIVER-3107] Warn when removing the last server from a topology</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3107</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;Quoting &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#other-topologytypes&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;SDAM: Other Topology Types&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;A client SHOULD emit a warning when, in the process of updating its topology description, it removes the last server from the topology.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Emitting a warning could better assist users in catching the following cases that could lead to an empty topology and non-functional application:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;A typo in the replicaSet URI option&lt;/li&gt;
	&lt;li&gt;Connecting to a standalone server with a replicaSet URI option present. &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#allowed-configuration-combinations&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;SDAM: Allowed Configuration Combinations&lt;/a&gt; allows drivers to support a Single topology type even if the replica set name is not-null, but libmongoc elects not to do that.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="750675">CDRIVER-3107</key>
            <summary>Warn when removing the last server from a topology</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13201">Fixed</resolution>
                                        <assignee username="isabel.atkinson@mongodb.com">Isabel Atkinson</assignee>
                                    <reporter username="jmikola@mongodb.com">Jeremy Mikola</reporter>
                        <labels>
                            <label>neweng</label>
                    </labels>
                <created>Tue, 30 Apr 2019 12:38:34 +0000</created>
                <updated>Sat, 28 Oct 2023 11:29:18 +0000</updated>
                            <resolved>Wed, 24 Jul 2019 16:39:37 +0000</resolved>
                                                    <fixVersion>1.15.0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2353063" author="xgen-internal-githook" created="Wed, 31 Jul 2019 20:13:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;isabelatkinson&apos;, &apos;username&apos;: &apos;isabelatkinson&apos;, &apos;email&apos;: &apos;isabel.atkinson@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3107&quot; title=&quot;Warn when removing the last server from a topology&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3107&quot;&gt;&lt;del&gt;CDRIVER-3107&lt;/del&gt;&lt;/a&gt; warn when removing last server from topology&lt;/p&gt;

&lt;p&gt;Emit a warning when the last server in the topology is removed in the&lt;br/&gt;
process of updating the topology description.&lt;br/&gt;
Branch: cdriver-2873&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/bd17815a14d43d4e967579898ae569fce38c8dc2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/bd17815a14d43d4e967579898ae569fce38c8dc2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2341880" author="xgen-internal-githook" created="Wed, 24 Jul 2019 16:38:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;isabelatkinson&apos;, &apos;email&apos;: &apos;isabel.atkinson@10gen.com&apos;, &apos;username&apos;: &apos;isabelatkinson&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3107&quot; title=&quot;Warn when removing the last server from a topology&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3107&quot;&gt;&lt;del&gt;CDRIVER-3107&lt;/del&gt;&lt;/a&gt; warn when removing last server from topology&lt;/p&gt;

&lt;p&gt;Emit a warning when the last server in the topology is removed in the&lt;br/&gt;
process of updating the topology description.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/bd17815a14d43d4e967579898ae569fce38c8dc2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/bd17815a14d43d4e967579898ae569fce38c8dc2&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2309548" author="jmikola@gmail.com" created="Tue, 2 Jul 2019 14:47:11 +0000"  >&lt;blockquote&gt;&lt;p&gt;could you give an example of a typo in a replicaSet&apos;s URI options that would result in an empty topology&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;By &quot;typo&quot;, I meant that the value of the &lt;tt&gt;replicaSet&lt;/tt&gt; URI option does not match the replica set of any hosts included in the seed list.&lt;/p&gt;

&lt;p&gt;As part of SDAM, the driver will end up removing each host from the topology as it realizes the name in its &lt;tt&gt;isMaster&lt;/tt&gt; response does not match the URI option. I expect additional replica set members included in the &lt;tt&gt;isMaster&lt;/tt&gt; response (but not in the seed list) also won&apos;t even be considered if the replica set name does not match. The end result in this case is that we end up with an empty topology.&lt;/p&gt;

&lt;p&gt;If you search for &quot;setName&quot; in the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#actions&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Actions&lt;/a&gt; section of the spec, you&apos;ll see the various steps where nodes may be removed.&lt;/p&gt;

&lt;p&gt;As a side note, the spec talks about &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#verifying-setname-with-topologytype-single&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;optionally validating the set name for a single topology&lt;/a&gt;; however, I don&apos;t believe that applies to libmongoc. IIRC,  the &quot;replicaSet&quot; URI option will cause libmongoc to consider the topology a replica set, even if there is only one node in the seed list (which would otherwise resemble a standalone connection string).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="731453">CDRIVER-3073</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="728972">CDRIVER-3068</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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr7d4n:</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>