<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:10:31 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-751] Discovered servers not checked until next scan</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-751</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;Bug in unreleased implementation of Server Discovery And Monitoring spec.&lt;/p&gt;

&lt;p&gt;The spec requires a single-threaded scan to keep going until all nodes have been checked, &lt;b&gt;including&lt;/b&gt; nodes discovered during the scan. But it seems that _mongoc_topology_do_blocking_scan quits once all servers known at the &lt;b&gt;start&lt;/b&gt; of the scan are checked. Discovered nodes are added to the topology description, but not checked until the next scan.&lt;/p&gt;

&lt;p&gt;I think mongoc_topology_scanner_add must call mongoc_async_cmd_new to schedule a check during the current scan, instead of deferring it to the next scan.&lt;/p&gt;

&lt;p&gt;Impact: an initial server selection may take longer than necessary, or may fail when it could have succeeded. E.g., if the seed list contains only a secondary, the primary is discovered from the secondary&apos;s host list, but not checked until the next scan, 500 ms (minHeartbeatFrequencyMS) later.&lt;/p&gt;

&lt;p&gt;If the new &quot;serverSelectionTryOnce&quot; is enabled in single-threaded mode, the selection actually &lt;b&gt;fails&lt;/b&gt; in this scenario when it must succeed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="217278">CDRIVER-751</key>
            <summary>Discovered servers not checked until next scan</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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>Thu, 16 Jul 2015 20:28:17 +0000</created>
                <updated>Wed, 12 Aug 2015 12:48:01 +0000</updated>
                            <resolved>Mon, 10 Aug 2015 19:49:03 +0000</resolved>
                                    <version>1.2.0</version>
                                    <fixVersion>1.2-beta0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1001060" author="xgen-internal-githook" created="Mon, 10 Aug 2015 19:48:46 +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-751&quot; title=&quot;Discovered servers not checked until next scan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-751&quot;&gt;&lt;del&gt;CDRIVER-751&lt;/del&gt;&lt;/a&gt; don&apos;t recheck any host in same scan&lt;/p&gt;

&lt;p&gt;Fix test_topology_scanner_oscillate case.&lt;br/&gt;
Branch: 1.2.0-dev&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/ffc8a01ebefe14960e3176eac8816ca7500c4a08&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/ffc8a01ebefe14960e3176eac8816ca7500c4a08&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1001059" author="xgen-internal-githook" created="Mon, 10 Aug 2015 19:48:46 +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-751&quot; title=&quot;Discovered servers not checked until next scan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-751&quot;&gt;&lt;del&gt;CDRIVER-751&lt;/del&gt;&lt;/a&gt; check discovered servers in same scan&lt;/p&gt;

&lt;p&gt;Bug in unreleased Server Discovery And Monitoring implementation.&lt;/p&gt;

&lt;p&gt;The spec requires a single-threaded scan to keep going until all nodes&lt;br/&gt;
have been checked, &lt;b&gt;including&lt;/b&gt; nodes discovered during the scan. But&lt;br/&gt;
_mongoc_topology_do_blocking_scan quit once all servers known at the&lt;br/&gt;
&lt;b&gt;start&lt;/b&gt; of the scan were checked. Discovered nodes are added to the&lt;br/&gt;
topology description, but not checked until the next scan.&lt;/p&gt;

&lt;p&gt;With this patch, a block scan keeps going until all servers are checked,&lt;br/&gt;
including those discovered during this scan.&lt;/p&gt;

&lt;p&gt;TODO: test_topology_scanner_oscillate currently fails, revealing that&lt;br/&gt;
in a pathological scenario the driver now errs on the other side, and&lt;br/&gt;
scans forever.&lt;br/&gt;
Branch: 1.2.0-dev&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/ddd99c22f9265a4748aa5aaf4850c16b8ea05859&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/ddd99c22f9265a4748aa5aaf4850c16b8ea05859&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <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|hsb967:</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="640">C Driver 2015Q2 sprint 5</customfieldvalue>

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