<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:09:28 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-45692] Ensure all internal inter-node commands which accept read/write concern explicitly specify it</title>
                <link>https://jira.mongodb.org/browse/SERVER-45692</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The approach will be to add a uassert/fassert (or possibly fassert when enableTestCommands, else uassert) if mongod receives an incoming command, on an &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.3.3/src/mongo/db/repl/replication_info.cpp#L341&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;internalClient connection&lt;/a&gt;, that accepts RWC, but doesn&apos;t have it explicitly specified.  The reason is that without it being explicitly specified, this internal command would have the user-defined CWRWC default applied to it, which may not give the desired semantics.  This will also ensure that future inter-node communication includes explicit RWC as appropriate (because otherwise tests will fail).&lt;/p&gt;

&lt;p&gt;The original approach was to avoid applying RWC defaults to non-replicated namespaces.  However, doing this reliably at command dispatch time would require a deep parsing and understanding of all the namespaces that will be touched by the command, which is currently not available and would be hard (perhaps impossible) to add.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Original summary: &lt;del&gt;RWC defaults shouldn&apos;t be applied to namespaces that aren&apos;t replicated&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;Original description:&lt;br/&gt;
&lt;del&gt;Currently RWC defaults are applied to non-replicated namespaces like the oplog and system.profile, even though this doesn&apos;t make sense.  In the case of default readConcern majority, this can inhibit initialisation of the oplog fetcher on secondaries during startup, thereby leading to a distributed deadlock where all reads using the default readConcern of majority will not be able to complete (on primaries and secondaries).&lt;/del&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="1108320">SERVER-45692</key>
            <summary>Ensure all internal inter-node commands which accept read/write concern explicitly specify it</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="kevin.pulo@mongodb.com">Kevin Pulo</assignee>
                                    <reporter username="kevin.pulo@mongodb.com">Kevin Pulo</reporter>
                        <labels>
                            <label>PM-900-Fallout</label>
                    </labels>
                <created>Wed, 22 Jan 2020 06:11:35 +0000</created>
                <updated>Sun, 29 Oct 2023 22:13:03 +0000</updated>
                            <resolved>Wed, 25 Mar 2020 07:24:11 +0000</resolved>
                                                    <fixVersion>4.4.0-rc0</fixVersion>
                    <fixVersion>4.3.6</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3001866" author="xgen-internal-githook" created="Thu, 26 Mar 2020 09:35:44 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Pulo&apos;, &apos;username&apos;: &apos;devkev&apos;, &apos;email&apos;: &apos;kevin.pulo@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; add explicit RWC to inter-node commands (even if merely kImplicitDefault)&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 747ff353cbc819d032fa727d4bd7ffad16ea0437)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; uassert if mongod receives a command on an internalClient connection, which should have explicit RWC, but doesn&apos;t&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 165b01c12f72840a25f16e1fe9b9b4df4bffa3ea)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47043&quot; title=&quot;Read concern set to default when it should be local&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47043&quot;&gt;&lt;del&gt;SERVER-47043&lt;/del&gt;&lt;/a&gt; Read concern set to default when it should be local&lt;/p&gt;

&lt;p&gt;(cherry picked from commit ad5a5fd53f50a0290338ea701489f3c18f1fa308)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8cf9dacffcec2666fbfbbcb3f8ef4a4402db4485&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8cf9dacffcec2666fbfbbcb3f8ef4a4402db4485&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2994107" author="xgen-internal-githook" created="Tue, 24 Mar 2020 14:13:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kaloian.manassiev@mongodb.com&apos;, &apos;name&apos;: &apos;Kaloian Manassiev&apos;, &apos;username&apos;: &apos;kaloianm&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; add explicit RWC to inter-node commands (even if merely kImplicitDefault)&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 81c6113198d2f5debf3da38a42bf61d7a079de2e.&lt;/p&gt;

&lt;p&gt;We discovered that this commit introduces &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47043&quot; title=&quot;Read concern set to default when it should be local&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47043&quot;&gt;&lt;del&gt;SERVER-47043&lt;/del&gt;&lt;/a&gt;, so it can&apos;t be&lt;br/&gt;
backported without it. Leaving all the backports for after 4.4.0-RC0 is&lt;br/&gt;
cut.&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/aef2f4f5c62fe07842bbc861dddcb0ad2f9a9e16&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/aef2f4f5c62fe07842bbc861dddcb0ad2f9a9e16&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2993651" author="xgen-internal-githook" created="Tue, 24 Mar 2020 05:52:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kevin.pulo@mongodb.com&apos;, &apos;name&apos;: &apos;Kevin Pulo&apos;, &apos;username&apos;: &apos;devkev&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; add explicit RWC to inter-node commands (even if merely kImplicitDefault)&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 747ff353cbc819d032fa727d4bd7ffad16ea0437)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/81c6113198d2f5debf3da38a42bf61d7a079de2e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/81c6113198d2f5debf3da38a42bf61d7a079de2e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2942613" author="xgen-internal-githook" created="Thu, 5 Mar 2020 13:21:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Pulo&apos;, &apos;username&apos;: &apos;devkev&apos;, &apos;email&apos;: &apos;kevin.pulo@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; uassert if mongod receives a command on an internalClient connection, which should have explicit RWC, but doesn&apos;t&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/165b01c12f72840a25f16e1fe9b9b4df4bffa3ea&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/165b01c12f72840a25f16e1fe9b9b4df4bffa3ea&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2942227" author="xgen-internal-githook" created="Thu, 5 Mar 2020 13:03:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;devkev&apos;, &apos;name&apos;: &apos;Kevin Pulo&apos;, &apos;email&apos;: &apos;kevin.pulo@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; add explicit RWC to inter-node commands (even if merely kImplicitDefault)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/747ff353cbc819d032fa727d4bd7ffad16ea0437&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/747ff353cbc819d032fa727d4bd7ffad16ea0437&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2767319" author="xgen-internal-githook" created="Tue, 28 Jan 2020 05:54:27 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;kevin.pulo@mongodb.com&apos;, &apos;username&apos;: &apos;devkev&apos;, &apos;name&apos;: &apos;Kevin Pulo&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45692&quot; title=&quot;Ensure all internal inter-node commands which accept read/write concern explicitly specify it&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45692&quot;&gt;&lt;del&gt;SERVER-45692&lt;/del&gt;&lt;/a&gt; make SyncSourceResolver pass readConcern local when querying remote oplogs&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/823a131ca93354c42b767767269f5a9e70691e78&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/823a131ca93354c42b767767269f5a9e70691e78&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2761555" author="judah.schvimer" created="Fri, 24 Jan 2020 12:49:36 +0000"  >&lt;p&gt;I think if the &quot;db&quot; of a command is &quot;local&quot; we could ignore the CWRWC defaults. My understanding is that that would never look at replicated data, and so could be a best effort attempt, in addition to explicitly specifying a read concern when we know we need to (e.g. oplog fetching). &lt;/p&gt;

&lt;p&gt;Further, I agree that we should have explicit tests for rollback, sync source selection, and initial sync with CRWRC. Even just targeted integration tests would suffice.&lt;/p&gt;</comment>
                            <comment id="2761524" author="kaloian.manassiev" created="Fri, 24 Jan 2020 12:03:42 +0000"  >&lt;p&gt;I don&apos;t think &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44539&quot; title=&quot;Re-enable &amp;quot;missing RWC&amp;quot; logging&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44539&quot;&gt;SERVER-44539&lt;/a&gt; would have caught this in the replica set case, but I do agree that it shows it is important, but I have some concerns that it might be an ongoing effort before we can truly enable invariants (especially with backwards compatibility implications in mind).&lt;/p&gt;

&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jack.mulrow&quot; class=&quot;user-hover&quot; rel=&quot;jack.mulrow&quot;&gt;jack.mulrow&lt;/a&gt;&lt;br/&gt;
&#160;&lt;/p&gt;</comment>
                            <comment id="2761116" author="kevin.pulo@10gen.com" created="Fri, 24 Jan 2020 06:53:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt;, this discussion reminded me that one of the purposes of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-44539&quot; title=&quot;Re-enable &amp;quot;missing RWC&amp;quot; logging&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-44539&quot;&gt;SERVER-44539&lt;/a&gt; was supposed to be flushing out the locations of these internal commands.  So maybe that ticket is more pressing after all?&lt;/p&gt;

&lt;p&gt;In the meantime I will use this ticket to fix this case that we know about (and which is causing test failures), by adding the explicit readConcern.  We will likely discover more down the track, but we should at least fix what we know about.&lt;/p&gt;

&lt;p&gt;In terms of testing replication (and sharding, for that matter) itself in the presence of custom CWRWC defaults, there is no coverage of that at this stage.  There are the cwrwc passthrough suites, but they only run jsCore (ie. they are more focussed on user operations).  We can look into defining cwrwc passthroughs of the replsets/sharding suites, but I&apos;m concerned about the default RWC getting in the way of the tests themselves (ie. the tests might have unstated assumptions that RC is local and WC is w:1).&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Is it possible to ignore CWRWC for oplog queries in general&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This has much the same problem as checking if it&apos;s replicated.  ie. the command dispatch code could call NamespaceString::isOplog() instead of NamespaceString::isReplicated(), but&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;I don&apos;t know for sure that the nss is fully-formed at the time (eg. it might have just the db, not the db and collection), and&lt;/li&gt;
	&lt;li&gt;it won&apos;t help if the command somehow reads from the oplog without specifying a namespace of &quot;local.oplog.rs&quot; at the top level (eg. by using $lookup).&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="2755224" author="samy.lanka" created="Thu, 23 Jan 2020 16:14:00 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kaloian.manassiev&quot; class=&quot;user-hover&quot; rel=&quot;kaloian.manassiev&quot;&gt;kaloian.manassiev&lt;/a&gt;, yes I&apos;m asking about coverage of replication paths that do remote queries with CWRWC set to something other than &lt;tt&gt;local&lt;/tt&gt;.  I think with this ticket we should add some coverage of the places we do remote queries on the oplog, but I wanted to check if we had something for other remote queries, like collection cloning during initial sync, to make sure there aren&apos;t edge cases that could stall.&lt;/p&gt;</comment>
                            <comment id="2754590" author="kaloian.manassiev" created="Thu, 23 Jan 2020 09:37:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=samy.lanka&quot; class=&quot;user-hover&quot; rel=&quot;samy.lanka&quot;&gt;samy.lanka&lt;/a&gt;, just for background - the CWRWC feature is about automatically applying read/write concerns to incoming requests and happens very early, in the entry point. Functionally it is no different from a user including read/write concern with an operation. Because of this, the &lt;a href=&quot;https://evergreen.mongodb.com/task/mongodb_mongo_master_enterprise_rhel_62_64_bit_display_cwrwc_rc_majority_passthrough_514531299ee6c275e6b40e0b881c7bf41996e90d_20_01_23_03_55_21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;cwrwc_rc_majority_passthrough&lt;/tt&gt;&lt;/a&gt; suite is no different in terms of what it covers from &lt;a href=&quot;https://evergreen.mongodb.com/task/mongodb_mongo_master_enterprise_rhel_62_64_bit_display_read_concern_majority_passthrough_514531299ee6c275e6b40e0b881c7bf41996e90d_20_01_23_03_55_21&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;read_concern_majority_passthrough&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Kev can answer more about the targeted coverage we have for CWRWC if you want, but given the above explanation, I think your questions about coverage of rollback or initial sync are unrelated to the feature. Is that correct?&lt;/p&gt;

&lt;p&gt;Unless you are asking about targeted coverage of the replication paths which do remote queries, with CWRWC set to something other than &lt;tt&gt;local&lt;/tt&gt;, in order to ensure that stalls like the one in BF-15941 do not occur, which would be ideal &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="2753102" author="samy.lanka" created="Wed, 22 Jan 2020 17:10:29 +0000"  >&lt;p&gt;I agree with Judah that we should look into all the known places we do oplog reads to make sure the solution works for all those cases. One question I have is how much test coverage do we have for CWRWC right now? I don&apos;t think we&apos;re getting much test coverage of rollbacks or of a meaningful initial sync (the one at startup only replicates a couple of collections), which I think would help us be more confident in the solution for this ticket. Perhaps adding a couple integration tests with this fix could help with that.&lt;/p&gt;

&lt;p&gt;Also, is my understanding correct that for CWRWC, we&apos;re doing collection cloning reads for initial sync with read concern?&lt;/p&gt;</comment>
                            <comment id="2752090" author="judah.schvimer" created="Wed, 22 Jan 2020 14:12:12 +0000"  >&lt;p&gt;That&apos;s reasonable. I can&apos;t think of any reads one node would do on another of unreplicated data other than the oplog. Is it possible to ignore CWRWC for oplog queries in general, rather than changing each individually as we see them and hoping we remember to give future oplog queries an explicit RWC?&lt;/p&gt;</comment>
                            <comment id="2752025" author="kaloian.manassiev" created="Wed, 22 Jan 2020 14:02:42 +0000"  >&lt;blockquote&gt;&lt;p&gt;Does the CWRWC get applied when a node reads its own unreplicated state in DBDirectClient? &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;No, calls under DBDirectClient are excluded.&lt;/p&gt;

&lt;p&gt;Ignoring it for unreplicated collections sounds good in theory, however in practice, determining that an operation only accessed unreplicated data is difficult (or at least we don&apos;t have means to do that). So the only option we have is to &quot;approximate&quot; it, by parsing the operation a-priori and checking whether there&apos;s &quot;local&quot; somewhere in it. I think this is a very error-prone approach and also causes layer violation. If we had &quot;something&quot; on the operation context which gets set if the operation accessed &lt;b&gt;only&lt;/b&gt; unreplicated data, which we can check at the end of the command, then that&apos;s a different question, but I&apos;d rather not build something like this now, given that we need to do the same for read concern as well &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.mongodb.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="2751924" author="judah.schvimer" created="Wed, 22 Jan 2020 13:43:42 +0000"  >&lt;p&gt;My personal inclination would be to exempt unreplicated collections from CWRWC. Does the CWRWC get applied when a node reads its own unreplicated state in DBDirectClient? I could see that being a problem for internal replication state if it was reading stale data or blocking for some period of time. I also agree with Kev&apos;s POV that read and write concern don&apos;t really make sense for unreplicated data. We can&apos;t error because that&apos;s backwards breaking, but we certainly could ignore it. Fixing this across the board would also prevent us from adding new bugs like this in the future.&lt;/p&gt;

&lt;p&gt;I understand Kal&apos;s concern though, and if we don&apos;t see any other similar problems creeping up, and think the oplog fetcher is the only problematic read, then this is a fine solution. There are multiple places we do oplog reads though (like in rollback and initial sync and the sync source resolver and ordinary oplog fetching), so we should explicitly audit that those are all being fixed.&lt;/p&gt;</comment>
                            <comment id="2751036" author="kaloian.manassiev" created="Wed, 22 Jan 2020 11:12:38 +0000"  >&lt;p&gt;As we spoke this morning, I believe that the proposed approach is wrong, because it requires the commands processing code to parse the command and extract the namespace, which is not always possible (for example aggregation can touch more than one namespace and we have no infrastructure to extract that). Instead, I would like to us to do adjust the oplog fetcher to explicitly pass RC local.&lt;/p&gt;

&lt;p&gt;Let me know if you guys think this could be problematic in any way, but I believe that we discussed this during the design review and it didn&apos;t raise any eyebrows.&lt;/p&gt;

&lt;p&gt;CC &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=samy.lanka&quot; class=&quot;user-hover&quot; rel=&quot;samy.lanka&quot;&gt;samy.lanka&lt;/a&gt;&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">
                                        <issuelink>
            <issuekey id="995859">SERVER-44539</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1286123">SERVER-47043</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1563410">SERVER-53293</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1964422">SERVER-62664</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1161848">SERVER-46249</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1231198">SERVER-46638</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.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>Wed, 22 Jan 2020 11:12:38 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 45 weeks, 6 days 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, 45 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>46.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>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>kaloian.manassiev@mongodb.com</customfieldvalue>
            <customfieldvalue>kevin.pulo@mongodb.com</customfieldvalue>
            <customfieldvalue>samy.lanka@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hwk3xj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr85iv:</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="3570">Sharding 2020-01-27</customfieldvalue>
    <customfieldvalue id="3571">Sharding 2020-02-10</customfieldvalue>
    <customfieldvalue id="3572">Sharding 2020-02-24</customfieldvalue>
    <customfieldvalue id="3653">Sharding 2020-03-09</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|hwjq6v:</customfieldvalue>

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