<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:17: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>[SERVER-48506] Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max</title>
                <link>https://jira.mongodb.org/browse/SERVER-48506</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In &lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/jstests/concurrency/fsm_workloads/server_status_with_time_out_cursors.js#L34&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;server_status_with_timeout_cursors.js&lt;/a&gt;, maxTimeMS is set small enough so that it&apos;s likely the cursor will time out over its lifetime.&#160;It executes find() operations that are expected to fail due to maxTimeMS timeout. &lt;/p&gt;

&lt;p&gt;We should change RemoteCommandTargeterRs so that it throws MaxTimeMsExpired rather than FailedToSatisfyReadPreference if the remaining maxTimeMs is less than the RSM deadline to find a host to expose a more accurate error to the user.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1367044">SERVER-48506</key>
            <summary>Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max</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="13201">Fixed</resolution>
                                        <assignee username="janna.golden@mongodb.com">Janna Golden</assignee>
                                    <reporter username="haley.connelly@mongodb.com">Haley Connelly</reporter>
                        <labels>
                            <label>sharding-wfbf-day</label>
                    </labels>
                <created>Fri, 29 May 2020 20:15:20 +0000</created>
                <updated>Sun, 29 Oct 2023 22:07:36 +0000</updated>
                            <resolved>Thu, 9 Jul 2020 16:13:06 +0000</resolved>
                                                    <fixVersion>4.4.1</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="3321519" author="xgen-internal-githook" created="Tue, 4 Aug 2020 22:35:15 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;jannaerin&apos;, &apos;email&apos;: &apos;golden.janna@gmail.com&apos;, &apos;username&apos;: &apos;jannaerin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48506&quot; title=&quot;Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48506&quot;&gt;&lt;del&gt;SERVER-48506&lt;/del&gt;&lt;/a&gt; Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c8e9a31cd3c21b7b40864e39323fbf0823f79f61)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c44a899c302311196261a4196ba4a53beae1e89c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c44a899c302311196261a4196ba4a53beae1e89c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3277783" author="xgen-internal-githook" created="Thu, 9 Jul 2020 16:00:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;jannaerin&apos;, &apos;email&apos;: &apos;golden.janna@gmail.com&apos;, &apos;username&apos;: &apos;jannaerin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48506&quot; title=&quot;Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48506&quot;&gt;&lt;del&gt;SERVER-48506&lt;/del&gt;&lt;/a&gt; Throw MaxTimeMSExpired instead of FailedToSatisfyReadPreference when RSM deadline is less than max&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c8e9a31cd3c21b7b40864e39323fbf0823f79f61&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c8e9a31cd3c21b7b40864e39323fbf0823f79f61&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3208030" author="james.wahlin@10gen.com" created="Mon, 15 Jun 2020 14:34:51 +0000"  >&lt;p&gt;The error code added under &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46225&quot; title=&quot;Add Interrupted to timeout codes accepted by server_status_with_time_out_cursors.js &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46225&quot;&gt;&lt;del&gt;SERVER-46225&lt;/del&gt;&lt;/a&gt; was a temporary measure which has since been removed. That said, if it makes sense we could definitely add &quot;FailedToSatisfyReadPreference &quot; to this list. I wonder however whether we should be returning &quot;MaxTimeMSExpired&quot; for this use case? If I understand correctly, the timeout occurs because an isMaster call from mongos to the CSRS set takes longer than the maxTimeMS allotted to the query. As a user, receiving &quot;FailedToSatisfyReadPreference&quot; could be misleading and lead to the expectation that there is an unhealthy replica set in the cluster. Receiving  &quot;MaxTimeMSExpired&quot; allows the user instead to decide whether to retry an operation, potentially with a larger maxTimeMS.&lt;/p&gt;</comment>
                            <comment id="3205969" author="janna.golden" created="Thu, 11 Jun 2020 20:14:23 +0000"  >&lt;p&gt;I didn&apos;t realize when Haley and I had discussed possible solutions that it was not possible to pass parameters at startup for an individual test in our concurrency suites - we can only do so in the suite&apos;s yml file. This would mean we would have to override the RSM default refresh period to &amp;lt; 10ms for every suite that this test runs in, which I don&apos;t think we want to do (we&apos;ll spam servers with too many isMaster responses). The failpoint mentioned needs to be set at startup when the client starts up its RSM. &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=james.wahlin&quot; class=&quot;user-hover&quot; rel=&quot;james.wahlin&quot;&gt;james.wahlin&lt;/a&gt;, it looks like you had added another acceptable error code as a part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46225&quot; title=&quot;Add Interrupted to timeout codes accepted by server_status_with_time_out_cursors.js &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46225&quot;&gt;&lt;del&gt;SERVER-46225&lt;/del&gt;&lt;/a&gt;. Do you think it would be okay to add &quot;FailedToSatisfyReadPreference&quot; as an acceptable error as well? I think that might be our best bet to fix this BF.&lt;/p&gt;</comment>
                            <comment id="3147019" author="haley.connelly" created="Fri, 29 May 2020 20:30:04 +0000"  >&lt;p&gt;One possible solution is to use the failpoint &lt;a href=&quot;https://github.com/mongodb/mongo/blob/a89ac1a2a5496fc6b9e510babbb75f85655f6fc9/src/mongo/client/server_is_master_monitor.cpp#L424&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;modifyReplicaSetMonitorDefaultRefreshPeriod &lt;/a&gt; to override the isMaster frequency for this test.&lt;/p&gt;

&lt;p&gt;Possible scenario:&lt;br/&gt;
By setting maxTimeMS to be much smaller than the default, the RSM gets NetworkInterfaceExceededTimeLimit from a non-monitoring connection (the query). It marks the node as unknown and changes the topology of the replica set to ReplicaSetNoPrimary. However, since the timeout was from a non-monitoring connection, the connection to the node that timed doesn&apos;t get closed. Thus, there is still an outstanding isMaster request scheduled up to heartbeatFrequency in the future. The RSM&apos;s view of the replica set / primary node is not updated until then. &lt;/p&gt;

&lt;p&gt;Meanwhile, with the small maxTimeMS and the RSM thinking there is no primary for the replica set, no host can be found in time for the next query and the RSM reports failedToSatisfyReadPreference.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 11 Jun 2020 20:14:23 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 27 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 27 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>haley.connelly@mongodb.com</customfieldvalue>
            <customfieldvalue>james.wahlin@mongodb.com</customfieldvalue>
            <customfieldvalue>janna.golden@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxnrnz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxaytr:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="3954">Sharding 2020-07-13</customfieldvalue>
    <customfieldvalue id="3957">Sharding 2020-06-29</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxndxb:</customfieldvalue>

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