<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:09:55 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-573] Update &quot;not master&quot; and &quot;node is recovering&quot; behavior</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-573</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;Obey Server Discovery and Monitoring Spec&apos;s rules for parsing and responding to &quot;not master&quot; errors: mark the server Unknown as if it were a network error. Detect these errors in the topology scanner&apos;s async command callback and in mongoc_cluster_run_command_monitored / mongoc_cluster_run_command_internal.&lt;/p&gt;

&lt;p&gt;This has been a missing feature since we implemented SDAM in libmongoc&lt;br/&gt;
1.2.0. It&apos;s now urgent to fix because Retryable Writes depends on this&lt;br/&gt;
feature. Otherwise during a stepdown, the driver might try a write&lt;br/&gt;
against a former primary, get a &quot;not master&quot; error, and try again with&lt;br/&gt;
the same server. Marking it Unknown ensures we re-scan the topology.&lt;/p&gt;</description>
                <environment></environment>
        <key id="189149">CDRIVER-573</key>
            <summary>Update &quot;not master&quot; and &quot;node is recovering&quot; behavior</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="9">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                            <label>SDAM</label>
                    </labels>
                <created>Thu, 12 Mar 2015 16:42:04 +0000</created>
                <updated>Thu, 26 Oct 2017 11:28:01 +0000</updated>
                            <resolved>Wed, 25 Oct 2017 17:38:56 +0000</resolved>
                                                    <fixVersion>1.9.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="1709855" author="xgen-internal-githook" created="Thu, 26 Oct 2017 11:28:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-573&quot; title=&quot;Update &amp;quot;not master&amp;quot; and &amp;quot;node is recovering&amp;quot; behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-573&quot;&gt;&lt;del&gt;CDRIVER-573&lt;/del&gt;&lt;/a&gt; fix shadowed declaration&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/2cd8fc7c5c0a446c0e585454af744ec91cbf15ac&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/2cd8fc7c5c0a446c0e585454af744ec91cbf15ac&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1708927" author="xgen-internal-githook" created="Wed, 25 Oct 2017 17:39:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-573&quot; title=&quot;Update &amp;quot;not master&amp;quot; and &amp;quot;node is recovering&amp;quot; behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-573&quot;&gt;&lt;del&gt;CDRIVER-573&lt;/del&gt;&lt;/a&gt; update change stream test&lt;/p&gt;

&lt;p&gt;Now that a &quot;not master&quot; error invalidates a server connection, the&lt;br/&gt;
driver no longer sends killCursors after a change stream is interrupted&lt;br/&gt;
by &quot;not master&quot;.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/9fdaa04ab0a9d6aed28de28147421e56aaa5126b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/9fdaa04ab0a9d6aed28de28147421e56aaa5126b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1708926" author="xgen-internal-githook" created="Wed, 25 Oct 2017 17:39:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-573&quot; title=&quot;Update &amp;quot;not master&amp;quot; and &amp;quot;node is recovering&amp;quot; behavior&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-573&quot;&gt;&lt;del&gt;CDRIVER-573&lt;/del&gt;&lt;/a&gt; &quot;not master&quot; err invalidates server&lt;/p&gt;

&lt;p&gt;Server Discovery and Monitoring Spec: a &quot;not master&quot; or &quot;node is&lt;br/&gt;
recovering&quot; error from any command marks the server Unknown.&lt;/p&gt;

&lt;p&gt;This has been a missing feature since we implemented SDAM in libmongoc&lt;br/&gt;
1.2.0. It&apos;s now urgent to fix because Retryable Writes depends on this&lt;br/&gt;
feature. Otherwise during a stepdown, the driver might try a write&lt;br/&gt;
against a former primary, get a &quot;not master&quot; error, and try again with&lt;br/&gt;
the same server. Marking it Unknown ensures we re-scan the topology.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/69c8a8a0e1b5fdda4bd7d89b425e6b71028f361e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/69c8a8a0e1b5fdda4bd7d89b425e6b71028f361e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1690701" author="jesse" created="Thu, 5 Oct 2017 19:28:36 +0000"  >&lt;p&gt;Required for Retryable Writes.&lt;/p&gt;</comment>
                            <comment id="855710" author="jesse" created="Tue, 17 Mar 2015 15:46:50 +0000"  >&lt;p&gt;The work is in or near calls to mongoc_topology_invalidate_server: the function should take the bson_error_t of the error that is causing invalidation.&lt;/p&gt;

&lt;p&gt;If the topology is in single-threaded mode, mongoc_topology_invalidate_server should check if the error is a &quot;not master&quot; error specifically (not a network error nor &quot;node is recovering&quot;) according to SDAM&apos;s rules:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-tests.rst#parsing-not-master-and-node-is-recovering-errors&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-tests.rst#parsing-not-master-and-node-is-recovering-errors&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it is a &quot;not master&quot; error, the topology re-checks the server inline, before returning the original error to the caller.&lt;/p&gt;

&lt;p&gt;The scanner is currently built to fan out and scan &lt;b&gt;all&lt;/b&gt; servers in the topology; it needs a feature to scan &lt;b&gt;one&lt;/b&gt; server.&lt;/p&gt;

&lt;p&gt;If the topology is in multi-threaded mode, the background thread should be awakened by mongoc_topology_invalidate_server and ideally scans &lt;b&gt;that&lt;/b&gt; server, soon.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="411288">CDRIVER-2228</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="440495">CDRIVER-2311</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="162167">CDRIVER-438</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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>CDRIVER-2085</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hs7287:</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>