<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:12:15 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-1353] SecondaryPreferred fails if primary matches tags but secondaries don&apos;t.</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-1353</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;Server Selection logic bug. Assume a primary P and secondary S, and a read preference with mode SecondaryPreferred and a tag set. S doesn&apos;t match the tag set, so the driver should fall back to using the primary.&lt;/p&gt;

&lt;p&gt;There&apos;s a bug if P happens to match the read preference&apos;s tag set. The driver selects &lt;b&gt;no&lt;/b&gt; servers instead of using the primary.&lt;/p&gt;

&lt;p&gt;mongoc_topology_description_suitable_servers&apos;s logic is:&lt;/p&gt;

&lt;p&gt;1. Set has_secondary true, because there is a secondary S.&lt;br/&gt;
2. Select &quot;eligible&quot; servers according to the tag set: this leaves only P.&lt;br/&gt;
3. Since there is at least one eligible server, &lt;b&gt;leave&lt;/b&gt; has_secondary true.&lt;br/&gt;
4. Since has_secondary is true and mode is SecondaryPreferred, remove P from suitable servers.&lt;br/&gt;
5. Now there are no suitable servers, selection fails.&lt;/p&gt;

&lt;p&gt;The bug is near #3: has_secondary should only be true if there is an eligible &lt;b&gt;secondary&lt;/b&gt;, rather than if there is any eligible server?&lt;/p&gt;

&lt;p&gt;Another option is to partly rewrite the C Driver&apos;s server selection based on how other clients do SecondaryPreferred: try selection with mode Secondary, if that fails then select with mode Primary. For PrimaryPreferred, vice versa.&lt;/p&gt;</description>
                <environment></environment>
        <key id="298187">CDRIVER-1353</key>
            <summary>SecondaryPreferred fails if primary matches tags but secondaries don&apos;t.</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="9">Done</resolution>
                                        <assignee username="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Sun, 3 Jul 2016 14:55:07 +0000</created>
                <updated>Wed, 10 Aug 2016 22:10:48 +0000</updated>
                            <resolved>Tue, 5 Jul 2016 18:09:43 +0000</resolved>
                                    <version>1.2.0</version>
                                    <fixVersion>1.4.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1314248" author="xgen-internal-githook" created="Tue, 5 Jul 2016 18:09:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1353&quot; title=&quot;SecondaryPreferred fails if primary matches tags but secondaries don&amp;#39;t.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1353&quot;&gt;&lt;del&gt;CDRIVER-1353&lt;/del&gt;&lt;/a&gt; SecondaryPreferred can fail if primary matches&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/89e1f9898200e52888f0b5b3b5a4a0ecceb73f6f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/89e1f9898200e52888f0b5b3b5a4a0ecceb73f6f&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                                        </outwardlinks>
                                                        </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|hsmlbz:</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="970">C Driver 2016 sprint 5</customfieldvalue>

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