<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18:19 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-3527] Store server_description_t hostname fields after lowercasing and using a set</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3527</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;&lt;tt&gt;mongoc_server_description_t&lt;/tt&gt; stores the server description fields &quot;me&quot;, &quot;hosts&quot;, &quot;passives&quot;, &quot;arbiters&quot;, &quot;current_primary&quot;, and &quot;connection_address&quot; without modification. But &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#hostnames-are-normalized-to-lower-case&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the SDAM spec says&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The same as with seeds provided in the initial configuration, all hostnames in the ismaster response&apos;s &quot;me&quot;, &quot;hosts&quot;, &quot;passives&quot;, and &quot;arbiters&quot; entries MUST be lower-cased.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Until addressing the bug &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3256&quot; title=&quot;SDAM &amp;quot;changed&amp;quot; events emitted even if descriptions don&amp;#39;t change&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3256&quot;&gt;&lt;del&gt;CDRIVER-3256&lt;/del&gt;&lt;/a&gt;, this makes no functional difference, since it appears on  usage of those fields they are always compared case insensitively (with &lt;tt&gt;strcasecmp&lt;/tt&gt;). However, &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3256&quot; title=&quot;SDAM &amp;quot;changed&amp;quot; events emitted even if descriptions don&amp;#39;t change&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3256&quot;&gt;&lt;del&gt;CDRIVER-3256&lt;/del&gt;&lt;/a&gt; requires implementing an equality comparison function of two server descriptions. Though it is simple to case insensitively compare &quot;me&quot;, &quot;connection_address&quot;, and &quot;current_primary&quot;, comparing the lists &quot;hosts&quot;, &quot;passives&quot;, and &quot;arbiters&quot; is trickier. They are currently stored as bson_t arrays. To compare them accurately, we&apos;d need to do a set compare (to account for duplicates and different ordering) and after lowercasing.&lt;/p&gt;

&lt;p&gt;The consequence of considering two &quot;hosts&quot; lists different if one has a duplicate or different order of entries is not very impactful. For example, if an ismaster reply on a single server reported the same information, but with the &quot;hosts&quot; list in a different order, libmongoc would incorrectly emit a server changed event and topology changed event. That means another, much rarer surfacing of &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3256&quot; title=&quot;SDAM &amp;quot;changed&amp;quot; events emitted even if descriptions don&amp;#39;t change&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3256&quot;&gt;&lt;del&gt;CDRIVER-3256&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We should probably be parsing hosts from the ismaster reply, lowercasing them, and storing the host lists in a &lt;tt&gt;mongoc_set_t&lt;/tt&gt;. Note, &lt;tt&gt;mongoc_topology_description_t&lt;/tt&gt; already stores the server list in a &lt;tt&gt;mongoc_set_t&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1141474">CDRIVER-3527</key>
            <summary>Store server_description_t hostname fields after lowercasing and using a set</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Sun, 9 Feb 2020 22:49:15 +0000</created>
                <updated>Thu, 31 Mar 2022 13:34:59 +0000</updated>
                                                                            <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="874230">CDRIVER-3256</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1135698">DRIVERS-944</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|hwdkx3:</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>