<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:41:03 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-35804] Disallow dropping collections under config/admin via mongos</title>
                <link>https://jira.mongodb.org/browse/SERVER-35804</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This ticket makes it such that attempting to drop collections under the admin or config database through mongos will now throw an error. Attempting to call dropDatabase on admin or config will similarly throw an error. It is still possible to drop these collections when connecting directly to the config server.&lt;/p&gt;

&lt;p&gt;Original Description:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;_configsvrDropCollection calls lockWithSessionID() which sets the readSource to be kMajorityCommitted and all the following commands from _configsvrDropCollection would erroneously keep using kMajorityCommitted as the readSource. &lt;/p&gt;

&lt;p&gt;Here is what happened in BF-9590:&lt;br/&gt;
1. The config primary server got _configsvrDropCollection command.&lt;br/&gt;
2. The distributed lock manager ran lockWithSessionID which triggered a majority read, so the readSource of the WiredTigerRecoveryUnit was set to &apos;majority&apos;.&lt;br/&gt;
3. There was another thread which just finished adding an index to the collection &quot;admin.mod1&quot;&lt;br/&gt;
4. _configsvrDropCollection finally called dropCollection which did a check whether the numbers of indexes on disk and in memory were equal. Since the readSource was still &quot;majority&quot;, we read the on-disk catalog with &quot;majority&quot; timestamp when the change to index catalog was not made yet. But the in-memory index catalog has the new index.&lt;/p&gt;

&lt;p&gt;Update:&lt;br/&gt;
_configsvrDropCollection() finally called dropCollection() because the collection is in admin database whose primary shard is the config server itself.&lt;/p&gt;&lt;/blockquote&gt;</description>
                <environment></environment>
        <key id="564262">SERVER-35804</key>
            <summary>Disallow dropping collections under config/admin via mongos</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="randolph@mongodb.com">Randolph Tan</assignee>
                                    <reporter username="xiangyu.yao@mongodb.com">Xiangyu Yao</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 Jun 2018 14:35:25 +0000</created>
                <updated>Sun, 29 Oct 2023 22:30:24 +0000</updated>
                            <resolved>Wed, 15 Apr 2020 13:55:01 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3039814" author="xgen-internal-githook" created="Tue, 14 Apr 2020 22:03:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Randolph Tan&apos;, &apos;email&apos;: &apos;randolph@10gen.com&apos;, &apos;username&apos;: &apos;renctan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35804&quot; title=&quot;Disallow dropping collections under config/admin via mongos&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35804&quot;&gt;&lt;del&gt;SERVER-35804&lt;/del&gt;&lt;/a&gt; Disallow dropping config and admin from mongos&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/eb939801412d100b3d0a09ab9dacfc1c64694395&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/eb939801412d100b3d0a09ab9dacfc1c64694395&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1932261" author="dianna.hohensee" created="Tue, 26 Jun 2018 19:51:14 +0000"  >&lt;p&gt;So this is happening because the fuzzer is targeting admin.mod1 in the _configsvrDropCollection command, which it previously created on the config server.&lt;/p&gt;

&lt;p&gt;_configsvrDropCollection is running, before createCollection, but apparently it takes a long time to get distlocks&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:12.886+0000 D TRACKING [conn247] Cmd: _configsvrDropCollection, TrackingId: 5b25483476322dfa8d75a72b|5b25483476322dfa8d75a72c&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;createCollection admin.mod1&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.388+0000 I STORAGE  [conn277] createCollection: admin.mod1 with generated UUID: f07cea58-baac-4610-9b08-574eea48e773&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;getting the distlocks for admin.mod1 and then hitting the invariant&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.392+0000 D SHARDING [conn247] trying to acquire new distributed lock for admin ( lock timeout : 900000 ms, ping interval : 30000 ms, process : ConfigServer ) with lockSessionID: 5b2548344bf4c0b03f3097db, why: dropCollection&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.396+0000 I COMMAND  [conn247] command config.locks appName: &quot;MongoDB Shell&quot; command: findAndModify { findAndModify: &quot;locks&quot;, query: { _id: &quot;admin&quot;, state: 0 }, update: { $set: { ts: ObjectId(&apos;5b2548344bf4c0b03f3097db&apos;), state: 2, who: &quot;ConfigServer:conn247&quot;, process: &quot;ConfigServer&quot;, when: new Date(1529169973392), why: &quot;dropCollection&quot; } }, upsert: true, new: true, writeConcern: { w: &quot;majority&quot;, wtimeout: 15000 }, $db: &quot;config&quot; } planSummary: IXSCAN { _id: 1 } keysExamined:1 docsExamined:1 nMatched:1 nModified:1 keysInserted:2 keysDeleted:2 numYields:0 reslen:467 locks:{ Global: { acquireCount: { r: 7, w: 3 } }, Database: { acquireCount: { r: 2, w: 3 } }, Collection: { acquireCount: { r: 2, w: 2 } }, oplog: { acquireCount: { w: 1 } } } protocol:op_msg 3ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.396+0000 I SHARDING [conn247] distributed lock &apos;admin&apos; acquired for &apos;dropCollection&apos;, ts : 5b2548344bf4c0b03f3097db&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.396+0000 D SHARDING [conn247] trying to acquire new distributed lock for admin.mod1 ( lock timeout : 900000 ms, ping interval : 30000 ms, process : ConfigServer ) with lockSessionID: 5b2548354bf4c0b03f30986c, why: dropCollection&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.398+0000 I COMMAND  [conn247] command config.locks appName: &quot;MongoDB Shell&quot; command: findAndModify { findAndModify: &quot;locks&quot;, query: { _id: &quot;admin.mod1&quot;, state: 0 }, update: { $set: { ts: ObjectId(&apos;5b2548354bf4c0b03f30986c&apos;), state: 2, who: &quot;ConfigServer:conn247&quot;, process: &quot;ConfigServer&quot;, when: new Date(1529169973396), why: &quot;dropCollection&quot; } }, upsert: true, new: true, writeConcern: { w: &quot;majority&quot;, wtimeout: 15000 }, $db: &quot;config&quot; } planSummary: IXSCAN { _id: 1 } keysExamined:1 docsExamined:1 nMatched:1 nModified:1 keysInserted:2 keysDeleted:2 numYields:0 reslen:472 locks:{ Global: { acquireCount: { r: 9, w: 5 } }, Database: { acquireCount: { r: 2, w: 5 } }, Collection: { acquireCount: { r: 2, w: 3 } }, oplog: { acquireCount: { w: 2 } } } protocol:op_msg 1ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.398+0000 I SHARDING [conn247] distributed lock &apos;admin.mod1&apos; acquired for &apos;dropCollection&apos;, ts : 5b2548354bf4c0b03f30986c&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.398+0000 I COMMAND  [conn247] command config.collections appName: &quot;MongoDB Shell&quot; command: find { find: &quot;collections&quot;, filter: { _id: &quot;admin.mod1&quot; }, ntoreturn: 1, singleBatch: true, $readPreference: { mode: &quot;nearest&quot;, tags: [] }, $db: &quot;config&quot; } planSummary: IDHACK keysExamined:0 docsExamined:0 cursorExhausted:1 numYields:0 nreturned:0 reslen:341 locks:{ Global: { acquireCount: { r: 10, w: 5 } }, Database: { acquireCount: { r: 3, w: 5 } }, Collection: { acquireCount: { r: 3, w: 3 } }, oplog: { acquireCount: { w: 2 } } } protocol:op_msg 0ms&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.398+0000 I COMMAND  [conn247] CMD: drop admin.mod1&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;[ShardedClusterFixture:job0:configsvr:primary] 2018-06-16T17:26:13.399+0000 F -        [conn247] Invariant failure _collection-&amp;gt;getCatalogEntry()-&amp;gt;getTotalIndexCount(opCtx) == count src/mongo/db/catalog/index_catalog_impl.cpp 1116&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;So the fuzzer threw all the basic sanity assumptions out the window and this is really hilarious.&lt;/p&gt;

&lt;p&gt;RecoveryUnit::setTimestampReadSource can be used to reset the readConcern majority effect on the RecoveryUnit after acquiring the distlock &amp;#8211; should use kUnset, which should let the dropCommand run without the weird majority readConcern setting. Storage is probably going to make dropCollection error on weird readConcern settings for future ease, but _configsrvDropCollection still needs fixing somehow.&lt;/p&gt;

&lt;p&gt;Esha pointed out that giving &quot;admin&quot; db to the high level sharding drop collection function hardcodes the config server as the target &amp;#8211; see &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5dabb36c0b930f03f8da5cc1b572f3edcf4cff58/src/mongo/db/s/config/configsvr_drop_collection_command.cpp#L184&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5dabb36c0b930f03f8da5cc1b572f3edcf4cff58/src/mongo/s/catalog/sharding_catalog_client_impl.cpp#L244&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; curtesy of Esha.&lt;/p&gt;</comment>
                            <comment id="1932224" author="xiangyu.yao" created="Tue, 26 Jun 2018 19:16:43 +0000"  >&lt;p&gt;I just put &lt;a href=&quot;https://jira.mongodb.org/browse/BF-9590&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;some logs&lt;/a&gt; in the BF comments about the last few operations before crash in that thread. It might be helpful.&lt;br/&gt;
1. It&apos;s the &quot;admin.mod1&quot; collection on the config primary. I am now confused why that could happen if adding index only happen on the shard(s).&lt;br/&gt;
2. It&apos;s the normal dropCollection and the check is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/4e8b282809ba28eb2da14435a91981a3821343e1/src/mongo/db/catalog/drop_collection.cpp#L89&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1932051" author="esha.maharishi@10gen.com" created="Tue, 26 Jun 2018 18:13:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=xiangyu.yao&quot; class=&quot;user-hover&quot; rel=&quot;xiangyu.yao&quot;&gt;xiangyu.yao&lt;/a&gt;, I&apos;m confused by the new description:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;3. There was another thread which just finished adding an index to the collection.&lt;br/&gt;
4. _configsvrDropCollection finally called dropCollection which did a check whether the numbers of indexes on disk and in memory were equal. Since the readSource was still &quot;majority&quot;, we read the on-disk catalog with &quot;majority&quot; timestamp when the change to index catalog was not made yet. But the in-memory index catalog has the new index.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;What is &quot;the collection&quot; in &quot;adding an index to the collection&quot;? Is it one of the config collections (e.g. config.collections or config.chunks), or the collection being dropped? If it&apos;s the collection being dropped, adding that index should happen on only on the shard(s) where the collection exists, &lt;b&gt;not&lt;/b&gt; on the config server.&lt;/p&gt;

&lt;p&gt;What is the &quot;dropCollection&quot; in &quot;_configsvrDropCollection finally called dropCollection&quot;? Is it &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.0.0-rc6/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp#L282&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the ShardingCatalogManager&apos;s dropCollection&lt;/a&gt;? Where is the check for &quot;check whether the numbers of indexes on disk and in memory were equal&quot; coming from?&lt;/p&gt;</comment>
                            <comment id="1932001" author="esha.maharishi@10gen.com" created="Tue, 26 Jun 2018 17:42:32 +0000"  >&lt;p&gt;We can update the ticket to say that, but I think it will get put into the &quot;remove distlock&quot; project, then. It basically requires using a separate opCtx whenever we need to do a majority read from a metadata command (&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=dianna.hohensee&quot; class=&quot;user-hover&quot; rel=&quot;dianna.hohensee&quot;&gt;dianna.hohensee&lt;/a&gt;, does that allow you to use a fresh RecoveryUnit for the read?)&lt;/p&gt;</comment>
                            <comment id="1931974" author="xiangyu.yao" created="Tue, 26 Jun 2018 17:25:36 +0000"  >&lt;p&gt;Got it. So the ticket should be to change _configsvrDropCollection command so that it doesn&apos;t trigger any majority reads.&lt;/p&gt;</comment>
                            <comment id="1931924" author="dianna.hohensee" created="Tue, 26 Jun 2018 16:52:42 +0000"  >&lt;p&gt;I suggest modifying the drop command to handle the issue, like we&apos;ve done for other commands, by not setting majority on the RecoveryUnit until the end. I didn&apos;t communicate this clearly to Xiangyu. The ticket should be updated.&lt;/p&gt;

&lt;p&gt;We don&apos;t currently have a way of unsetting the readConcern on the RecoveryUnit.&lt;/p&gt;</comment>
                            <comment id="1931884" author="xiangyu.yao" created="Tue, 26 Jun 2018 16:24:30 +0000"  >&lt;p&gt;We just need to set the readSource of the recoveryUnit from kMajorityCommitted back to kUnset. The fact that multiple operations use the same recoveryUnit is certainly not ideal but we can do this workaround.&lt;br/&gt;
&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=dianna.hohensee&quot; class=&quot;user-hover&quot; rel=&quot;dianna.hohensee&quot;&gt;dianna.hohensee&lt;/a&gt; mentioned that we had similar issues before.&lt;/p&gt;</comment>
                            <comment id="1931836" author="esha.maharishi@10gen.com" created="Tue, 26 Jun 2018 15:50:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=xiangyu.yao&quot; class=&quot;user-hover&quot; rel=&quot;xiangyu.yao&quot;&gt;xiangyu.yao&lt;/a&gt;, do you know if it is actually possible to set the read snapshot back to &apos;local&apos; after setting it to &apos;majority&apos;? My understanding was that this was not currently possible.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="564508">SERVER-35828</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="1316185">DOCS-13595</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="1640133">SERVER-54977</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1336353">SERVER-47896</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1315296">SERVER-47550</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>9.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 26 Jun 2018 15:50:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 43 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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>This ticket makes it such that attempting to drop collections under the admin or config database through mongos will now throw an error. Attempting to call dropDatabase on admin or config will similarly throw an error. It is still possible to drop these collections when connecting directly to the config server.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[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, 43 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>45.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>dianna.hohensee@mongodb.com</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>randolph@mongodb.com</customfieldvalue>
            <customfieldvalue>xiangyu.yao@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu1fy7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hts8dr:</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="3837">Sharding 2020-04-20</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;See the linked BF.&lt;/p&gt;</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16943"><![CDATA[Cloud]]></customfieldvalue>
    <customfieldvalue key="16944"><![CDATA[Docs]]></customfieldvalue>
    <customfieldvalue key="16945"><![CDATA[Drivers]]></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|hu127j:</customfieldvalue>

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