<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:41:56 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-57476] Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely</title>
                <link>https://jira.mongodb.org/browse/SERVER-57476</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/2e6ee47814057a76c8ad5b9a80f9f533308e0c78/src/mongo/db/storage/wiredtiger/wiredtiger_prepare_conflict.h#L66&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;wiredTigerPrepareConflictRetry()&lt;/a&gt; doesn&apos;t release any storage resources when WiredTiger returns WT&amp;#95;PREPARE&amp;#95;CONFLICT. This is because prepare conflicts are expected to resolve quickly and the storage transaction may already have a snapshot compatible with the commitTimestamp of the prepared transaction. However, committing or aborting a prepared transaction depends on the ability of the replica set to replicate and confirm majority&amp;#45;committed writes. If the operation blocked in wiredTigerPrepareConflictRetry() has reserved an oplog slot, then oplog readers will block until the oplog hole is resolved. But oplog readers being blocked prevents new incoming writes from becoming majority&amp;#45;committed, which can prevent a prepared transaction from exiting the kPrepared state.&lt;/p&gt;

&lt;hr /&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;Thread 56: &quot;conn2&quot; (Thread 0x7f4ee3799700 (LWP 15315))&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;...&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;#11 mongo::Interruptible::waitForConditionOrInterrupt&amp;lt;std::unique_lock&amp;lt;mongo::latch_detail::Latch&amp;gt;, mongo::WiredTigerSessionCache::waitUntilPreparedUnitOfWorkCommitsOrAborts(mongo::OperationContext*, uint64_t)::&amp;lt;lambda()&amp;gt; &amp;gt; (waitTimer=0x0, pred=..., m=..., cv=..., this=0x55802d3d26c0) at src/mongo/util/interruptible.h:466&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;#12 mongo::WiredTigerSessionCache::waitUntilPreparedUnitOfWorkCommitsOrAborts (this=&amp;lt;optimized out&amp;gt;, opCtx=opCtx@entry=0x55802d3d26c0, lastCount=&amp;lt;optimized out&amp;gt;, lastCount@entry=0) at src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp:369&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;#13 0x00007f4f0c17c5e1 in mongo::wiredTigerPrepareConflictRetry&amp;lt;mongo::WiredTigerIndexUnique::_keyExists(mongo::OperationContext*, WT_CURSOR*, char const*, size_t)::&amp;lt;lambda()&amp;gt; &amp;gt;(mongo::OperationContext *, mongo::WiredTigerIndexUnique::&amp;lt;lambda()&amp;gt; &amp;amp;&amp;amp;) (opCtx=0x55802d3d26c0, f=...) at src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.h:192&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;#14 0x00007f4f0c17ce24 in mongo::WiredTigerIndexUnique::_keyExists (this=this@entry=0x55802cba1380, opCtx=opCtx@entry=0x55802d3d26c0, c=&amp;lt;optimized out&amp;gt;, c@entry=0x55802d8d1400, buffer=0x55802d43bc38 &quot;+\002\004&quot;, size=size@entry=3) at src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp:1400&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;#15 0x00007f4f0c17d0da in mongo::WiredTigerIndexUnique::_insertTimestampSafe (this=0x55802cba1380, opCtx=0x55802d3d26c0, c=0x55802d8d1400, keyString=..., dupsAllowed=&amp;lt;optimized out&amp;gt;) at src/mongo/util/shared_buffer.h:204&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;#16 0x00007f4f0c17e2dc in mongo::WiredTigerIndexUnique::_insert (this=0x55802cba1380, opCtx=0x55802d3d26c0, c=0x55802d8d1400, keyString=..., dupsAllowed=&amp;lt;optimized out&amp;gt;) at src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp:1474&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;#17 0x00007f4f0c178b50 in mongo::WiredTigerIndex::insert (this=0x55802cba1380, opCtx=0x55802d3d26c0, keyString=..., dupsAllowed=&amp;lt;optimized out&amp;gt;) at src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp:267&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;#18 0x00007f4f096657d0 in mongo::AbstractIndexAccessMethod::insertKeys(mongo::OperationContext*, std::set&amp;lt;mongo::KeyString::Value, std::less&amp;lt;mongo::KeyString::Value&amp;gt;, std::allocator&amp;lt;mongo::KeyString::Value&amp;gt; &amp;gt; const&amp;amp;, mongo::RecordId const&amp;amp;, mongo::InsertDeleteOptions const&amp;amp;, std::function&amp;lt;mongo::Status (mongo::KeyString::Value const&amp;amp;)&amp;gt;&amp;amp;&amp;amp;, long*) (this=0x55802cc25440, opCtx=0x55802d3d26c0, keys=std::set with 1 element = {...}, loc=..., options=..., onDuplicateKey=..., numInserted=0x7f4ee3795510) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/unique_ptr.h:342&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;#19 0x00007f4f0966596e in mongo::AbstractIndexAccessMethod::insertKeysAndUpdateMultikeyPaths(mongo::OperationContext*, std::set&amp;lt;mongo::KeyString::Value, std::less&amp;lt;mongo::KeyString::Value&amp;gt;, std::allocator&amp;lt;mongo::KeyString::Value&amp;gt; &amp;gt; const&amp;amp;, std::set&amp;lt;mongo::KeyString::Value, std::less&amp;lt;mongo::KeyString::Value&amp;gt;, std::allocator&amp;lt;mongo::KeyString::Value&amp;gt; &amp;gt; const&amp;amp;, std::vector&amp;lt;std::set&amp;lt;unsigned long, std::less&amp;lt;unsigned long&amp;gt;, std::allocator&amp;lt;unsigned long&amp;gt; &amp;gt;, std::allocator&amp;lt;std::set&amp;lt;unsigned long, std::less&amp;lt;unsigned long&amp;gt;, std::allocator&amp;lt;unsigned long&amp;gt; &amp;gt; &amp;gt; &amp;gt; const&amp;amp;, mongo::RecordId const&amp;amp;, mongo::InsertDeleteOptions const&amp;amp;, std::function&amp;lt;mongo::Status (mongo::KeyString::Value const&amp;amp;)&amp;gt;&amp;amp;&amp;amp;, long*) (this=0x55802cc25440, opCtx=0x55802d3d26c0, keys=std::set with 1 element = {...}, multikeyMetadataKeys=std::set with 0 elements, multikeyPaths=std::vector of length 1, capacity 1 = {...}, loc=..., options=..., onDuplicateKey=..., numInserted=0x7f4ee3795510) at src/mongo/db/index/index_access_method.cpp:164&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;#20 0x00007f4f0a2bae14 in mongo::IndexCatalogImpl::_indexKeys (this=&amp;lt;optimized out&amp;gt;, opCtx=0x55802d3d26c0, index=&amp;lt;optimized out&amp;gt;, keys=std::set with 1 element = {...}, multikeyMetadataKeys=..., multikeyPaths=std::vector of length 1, capacity 1 = {...}, obj=owned BSONObj 33 bytes @ 0x55802d35bf2b = {...}, loc=..., options=..., keysInsertedOut=0x7f4ee37958e8) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/std_function.h:402&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;#21 0x00007f4f0a2c2bce in mongo::IndexCatalogImpl::_indexFilteredRecords (this=0x55802cc26340, opCtx=0x55802d3d26c0, index=0x55802d35b810, bsonRecords=..., keysInsertedOut=0x7f4ee37958e8) at src/mongo/db/catalog/index_catalog_impl.cpp:1408&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;#22 0x00007f4f0a2c2f34 in mongo::IndexCatalogImpl::_indexRecords (this=0x55802cc26340, opCtx=0x55802d3d26c0, index=0x55802d35b810, bsonRecords=std::vector of length 3, capacity 3 = {...}, keysInsertedOut=0x7f4ee37958e8) at src/mongo/db/catalog/index_catalog_impl.cpp:1435&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;#23 0x00007f4f0a2c3032 in mongo::IndexCatalogImpl::indexRecords (this=0x55802cc26340, opCtx=0x55802d3d26c0, bsonRecords=std::vector of length 3, capacity 3 = {...}, keysInsertedOut=0x7f4ee37958e8) at src/mongo/db/catalog/index_catalog_impl.cpp:1591&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;#24 0x00007f4f0a29baab in mongo::CollectionImpl::_insertDocuments (this=0x55802d35b100, opCtx=0x55802d3d26c0, begin={stmtId = 0, oplogSlot = {_timestamp = {i = 1, secs = 536870912}, _term = 1}, doc = &amp;lt;error reading variable: Cannot access memory at address 0x4000000000000001&amp;gt;{_objdata = 0x4000000000000001 &amp;lt;error: Cannot access memory at address 0x4000000000000001&amp;gt;, _ownedBuffer = {_buffer = {_holder = {px = 0x2}}}}}, end={stmtId = 0, oplogSlot = {_timestamp = {i = 1, secs = 536870912}, _term = 1}, doc = &amp;lt;error reading variable: Cannot access memory at address 0x4000000000000001&amp;gt;{_objdata = 0x4000000000000001 &amp;lt;error: Cannot access memory at address 0x4000000000000001&amp;gt;, _ownedBuffer = {_buffer = {_holder = {px = 0x2}}}}}, opDebug=0x55802d359450) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/unique_ptr.h:342&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;#25 0x00007f4f0a2a034e in mongo::CollectionImpl::insertDocuments (this=this@entry=0x55802d35b100, opCtx=opCtx@entry=0x55802d3d26c0, begin=begin@entry={stmtId = -1, oplogSlot = {_timestamp = {i = 5, secs = 1622990608}, _term = 1}, doc = owned BSONObj 33 bytes @ 0x55802d35bf2b = {[_id] = {&quot;$oid&quot;: &quot;60bcdf109bb2288d9de42896&quot;}, [a] = 1.0}}, end=end@entry={stmtId = 0, oplogSlot = {_timestamp = {i = 1, secs = 536870912}, _term = 1}, doc = &amp;lt;error reading variable: Cannot access memory at address 0x4000000000000001&amp;gt;{_objdata = 0x4000000000000001 &amp;lt;error: Cannot access memory at address 0x4000000000000001&amp;gt;, _ownedBuffer = {_buffer = {_holder = {px = 0x2}}}}}, opDebug=0x55802d359450, fromMigrate=false) at src/mongo/db/catalog/collection_impl.cpp:505&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;#26 0x00007f4f0aca3963 in mongo::(anonymous namespace)::insertDocuments (opCtx=0x55802d3d26c0, collection=&amp;lt;optimized out&amp;gt;, begin=..., end={stmtId = 0, oplogSlot = {_timestamp = {i = 1, secs = 536870912}, _term = 1}, doc = &amp;lt;error reading variable: Cannot access memory at address 0x4000000000000001&amp;gt;{_objdata = 0x4000000000000001 &amp;lt;error: Cannot access memory at address 0x4000000000000001&amp;gt;, _ownedBuffer = {_buffer = {_holder = {px = 0x2}}}}}, fromMigrate=&amp;lt;optimized out&amp;gt;) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/stl_iterator.h:845&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;#27 0x00007f4f0aca45a1 in mongo::(anonymous namespace)::insertBatchAndHandleErrors (fromMigrate=&amp;lt;optimized out&amp;gt;, out=&amp;lt;optimized out&amp;gt;, lastOpFixer=&amp;lt;optimized out&amp;gt;, batch=std::vector of length 3, capacity 3 = {...}, wholeOp=..., opCtx=&amp;lt;optimized out&amp;gt;) at src/mongo/db/catalog_raii.h:131&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;#28 mongo::performInserts (opCtx=&amp;lt;optimized out&amp;gt;, opCtx@entry=0x55802d3d26c0, wholeOp=..., fromMigrate=fromMigrate@entry=false) at src/mongo/db/ops/write_ops_exec.cpp:621&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;#29 0x00007f4f04442cef in mongo::(anonymous namespace)::CmdInsert::Invocation::runImpl (this=0x55802d4090c0, opCtx=0x55802d3d26c0, result=...) at src/mongo/db/commands/write_commands/write_commands.cpp:299&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;#30 0x00007f4f044403dd in mongo::(anonymous namespace)::WriteCommand::InvocationBase::run (this=0x55802d4090c0, opCtx=0x55802d3d26c0, result=0x55802cf10cc0) at src/mongo/db/commands/write_commands/write_commands.cpp:241&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;#31 0x00007f4f08db14ff in mongo::CommandHelpers::runCommandInvocation (opCtx=0x55802d3d26c0, request=..., invocation=0x55802d4090c0, response=0x55802cf10cc0) at src/mongo/db/commands.cpp:184&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;#32 0x00007f4f0469364f in mongo::(anonymous namespace)::runCommandImpl (opCtx=&amp;lt;optimized out&amp;gt;, invocation=&amp;lt;optimized out&amp;gt;, request=..., replyBuilder=0x55802cf10cc0, startOperationTime=..., behaviors=..., extraFieldsBuilder=0x7f4ee37968e0, sessionOptions=...) at src/mongo/db/service_entry_point_common.cpp:828&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;#33 0x00007f4f04695cf9 in mongo::(anonymous namespace)::execCommandDatabase (opCtx=&amp;lt;optimized out&amp;gt;, command=&amp;lt;optimized out&amp;gt;, request=..., replyBuilder=&amp;lt;optimized out&amp;gt;, behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1226&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;#34 0x00007f4f04697070 in mongo::(anonymous namespace)::&amp;lt;lambda()&amp;gt;::operator() (__closure=&amp;lt;optimized out&amp;gt;) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/unique_ptr.h:342&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;#35 mongo::(anonymous namespace)::receivedCommands (opCtx=0x55802d3d26c0, message=..., behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1440&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;#36 0x00007f4f04697cfd in mongo::ServiceEntryPointCommon::handleRequest (opCtx=0x55802d3d26c0, m=..., behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1745&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;
&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;Thread 43: &quot;conn1&quot; (Thread 0x7f4ee9cbf700 (LWP 15300))&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;...&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;#11 mongo::Interruptible::waitForConditionOrInterrupt&amp;lt;std::unique_lock&amp;lt;mongo::latch_detail::Latch&amp;gt;, mongo::WiredTigerOplogManager::waitForAllEarlierOplogWritesToBeVisible(const mongo::WiredTigerRecordStore*, mongo::OperationContext*)::&amp;lt;lambda()&amp;gt; &amp;gt; (waitTimer=0x0, pred=..., m=..., cv=..., this=0x55802d3d18c0) at src/mongo/util/interruptible.h:466&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;#12 mongo::WiredTigerOplogManager::waitForAllEarlierOplogWritesToBeVisible (this=&amp;lt;optimized out&amp;gt;, oplogRecordStore=&amp;lt;optimized out&amp;gt;, opCtx=0x55802d3d18c0) at src/mongo/db/storage/wiredtiger/wiredtiger_oplog_manager.cpp:147&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;#13 0x00007f4f09ea2244 in mongo::CollectionScan::doWork (this=0x55802cb75c00, out=0x7f4ee9cbb8c8) at src/mongo/db/exec/plan_stage.h:383&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;#14 0x00007f4f09ec3316 in mongo::PlanStage::work (this=0x55802cb75c00, out=out@entry=0x7f4ee9cbb8c8) at src/mongo/db/exec/plan_stage.cpp:47&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;#15 0x00007f4f09f20f7a in mongo::PlanExecutorImpl::_getNextImpl (this=0x55802d379960, objOut=0x7f4ee9cbba30, dlOut=0x0) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/unique_ptr.h:342&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;#16 0x00007f4f09f219bb in mongo::PlanExecutorImpl::getNext (this=&amp;lt;optimized out&amp;gt;, objOut=0x7f4ee9cbbb28, dlOut=&amp;lt;optimized out&amp;gt;) at src/mongo/db/query/plan_executor_impl.cpp:413&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;#17 0x00007f4f0440f753 in mongo::(anonymous namespace)::FindCmd::Invocation::run (this=0x55802cf10680, opCtx=0x55802d3d18c0, result=&amp;lt;optimized out&amp;gt;) at src/mongo/db/commands/find_cmd.cpp:516&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;#18 0x00007f4f08db14ff in mongo::CommandHelpers::runCommandInvocation (opCtx=0x55802d3d18c0, request=..., invocation=0x55802cf10680, response=0x55802cf104a0) at src/mongo/db/commands.cpp:184&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;#19 0x00007f4f04692d72 in mongo::(anonymous namespace)::runCommandImpl (opCtx=&amp;lt;optimized out&amp;gt;, invocation=&amp;lt;optimized out&amp;gt;, request=..., replyBuilder=0x55802cf104a0, startOperationTime=..., behaviors=..., extraFieldsBuilder=0x7f4ee9cbc8e0, sessionOptions=...) at src/mongo/db/service_entry_point_common.cpp:859&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;#20 0x00007f4f04695cf9 in mongo::(anonymous namespace)::execCommandDatabase (opCtx=&amp;lt;optimized out&amp;gt;, command=&amp;lt;optimized out&amp;gt;, request=..., replyBuilder=&amp;lt;optimized out&amp;gt;, behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1226&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;#21 0x00007f4f04697070 in mongo::(anonymous namespace)::&amp;lt;lambda()&amp;gt;::operator() (__closure=&amp;lt;optimized out&amp;gt;) at /opt/mongodbtoolchain/revisions/e5348beb43e147b74a40f4ca5fb05a330ea646cf/stow/gcc-v3.U0D/include/c++/8.2.0/bits/unique_ptr.h:342&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;#22 mongo::(anonymous namespace)::receivedCommands (opCtx=0x55802d3d18c0, message=..., behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1440&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;#23 0x00007f4f04697cfd in mongo::ServiceEntryPointCommon::handleRequest (opCtx=0x55802d3d18c0, m=..., behaviors=...) at src/mongo/db/service_entry_point_common.cpp:1745&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</description>
                <environment></environment>
        <key id="1769596">SERVER-57476</key>
            <summary>Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely</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="daniel.gottlieb@mongodb.com">Daniel Gottlieb</assignee>
                                    <reporter username="max.hirschhorn@mongodb.com">Max Hirschhorn</reporter>
                        <labels>
                    </labels>
                <created>Sat, 5 Jun 2021 01:05:08 +0000</created>
                <updated>Sun, 29 Oct 2023 21:52:34 +0000</updated>
                            <resolved>Thu, 10 Jun 2021 14:06:39 +0000</resolved>
                                    <version>4.2.0</version>
                    <version>4.4.0</version>
                    <version>5.0.0-rc0</version>
                                    <fixVersion>4.2.15</fixVersion>
                    <fixVersion>4.4.7</fixVersion>
                    <fixVersion>5.0.0-rc2</fixVersion>
                    <fixVersion>5.1.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>28</watches>
                                                                                                                <comments>
                            <comment id="3872235" author="xgen-internal-githook" created="Fri, 11 Jun 2021 00:41:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1e7e343fb6c90fbf0c62deabf61630353e2e5e29)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/379db12e4d046c82f60732bcf11c98019f04bbf5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/379db12e4d046c82f60732bcf11c98019f04bbf5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3872062" author="xgen-internal-githook" created="Thu, 10 Jun 2021 21:46:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1e7e343fb6c90fbf0c62deabf61630353e2e5e29)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/cfffcff7de7417c29a1d95d7a856c7874b9eebd1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/cfffcff7de7417c29a1d95d7a856c7874b9eebd1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3872023" author="xgen-internal-githook" created="Thu, 10 Jun 2021 21:32:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 1e7e343fb6c90fbf0c62deabf61630353e2e5e29)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2b62a316d722b406fbbc48bac492427844f244a3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2b62a316d722b406fbbc48bac492427844f244a3&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3870695" author="xgen-internal-githook" created="Thu, 10 Jun 2021 14:05:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/1e7e343fb6c90fbf0c62deabf61630353e2e5e29&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/1e7e343fb6c90fbf0c62deabf61630353e2e5e29&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3869464" author="daniel.gottlieb@10gen.com" created="Wed, 9 Jun 2021 19:29:24 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Daniel Gottlieb, does this have the possibility of user operations that didn&apos;t previously encounter write conflict errors, or were unlikely to, to now possibly see a write conflict?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Changing my answer: no. This should only create {{WriteConflictException}}s that get retried internally and never get returned to a user. This is based off the assumption that (MDB) transactions don&apos;t generate their oplog timestamps until the very end.&lt;/p&gt;</comment>
                            <comment id="3867808" author="xgen-internal-githook" created="Wed, 9 Jun 2021 02:55:35 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 44419183dfabb246c0a112f6060a372e90ee0d44.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/990f8ede6f89e44315688d4f679c28ff53b672d1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/990f8ede6f89e44315688d4f679c28ff53b672d1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3867785" author="xgen-internal-githook" created="Wed, 9 Jun 2021 01:58:38 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Daniel Gottlieb&apos;, &apos;email&apos;: &apos;daniel.gottlieb@mongodb.com&apos;, &apos;username&apos;: &apos;dgottlieb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57476&quot; title=&quot;Operation may block on prepare conflict while holding oplog slot, stalling replication indefinitely&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57476&quot;&gt;&lt;del&gt;SERVER-57476&lt;/del&gt;&lt;/a&gt;: Return a WriteConflict when a timestamped transaction hits a prepare conflict.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/44419183dfabb246c0a112f6060a372e90ee0d44&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/44419183dfabb246c0a112f6060a372e90ee0d44&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3867076" author="daniel.gottlieb@10gen.com" created="Tue, 8 Jun 2021 18:38:08 +0000"  >&lt;p&gt;Thanks for the thoughtful questions &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bruce.lucas&quot; class=&quot;user-hover&quot; rel=&quot;bruce.lucas&quot;&gt;bruce.lucas&lt;/a&gt;. Given the interest in this scenario, I appreciate the timely feedback that helps us quickly gain confidence that the described change is correct, complete and minimizes impact on users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Daniel Gottlieb, does this have the possibility of user operations that didn&apos;t previously encounter write conflict errors, or were unlikely to, to now possibly see a write conflict?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Operations that were unlikely to encounter a write conflict are now more likely to observe one[1]. But I don&apos;t believe we return a write conflict for anything that couldn&apos;t do so previously. &lt;/p&gt;

&lt;p&gt;I&apos;ve been using this chart to describe the interleaving that leads to a stall:&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;| Preparer                              | VectoredInsert            | OplogVisibility Ts |&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;|---------------------------------------+---------------------------+--------------------|&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;| BeginTxn                              |                           |                    |&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;| Write A                               |                           |                    |&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;|                                       | BeginTxn                  |                    |&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;|                                       | Preallocates TS(10, 11)   |                  9 |&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;| (side txn commits prepare oplog @ 12) |                           |                    |&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;| Prepare 12                            |                           |                    |&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;|                                       | Write A (PrepareConflict) |                    |&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;But if we reorder who wins the race to allocate a timestamp, we&apos;d now create an &quot;unnecessary&quot; write conflict (the prepare conflict would resolve, allowing the &quot;vectored insert&quot; to make progress without retrying the whole operation):&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;| Preparer                              | VectoredInsert                             | OplogVisibility Ts |&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;|---------------------------------------+--------------------------------------------+--------------------|&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;| BeginTxn                              |                                            |                    |&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;| Write A                               |                                            |                    |&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;| (side txn commits prepare oplog @ 10) |                                            |                 10 |&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;| Prepare 10                            |                                            |                    |&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;|                                       | BeginTxn                                   |                    |&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;|                                       | Preallocates TS(11, 12)                    |                 10 |&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;|                                       | Write A (PrepareConflict -&amp;gt; WriteConflict) |                    |&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;| TS(10) becomes majority committed     |                                            |                    |&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;blockquote&gt;
&lt;p&gt;That&apos;s not necessarily a problem (unless it makes operations likely to see write conflicts at a high rate), but it may be something we need to be aware of in case customers have questions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I don&apos;t think we&apos;ll see operations write conflict at a high rate, but it&apos;s hard to say for certain. The above diagram demonstrates how the benign case can result in a write conflict while we wait for a majority write. The window can be large (network timescale versus CPU timescale for healthy systems). But to be clear, I claim:&lt;br/&gt;
1) For an application retrying quickly, the overall latency would be similar between the two behaviors. Obviously retrying the write conflict wastes more CPU and/or network. &lt;br/&gt;
2) Any newly returned write conflict could be unlucky with how timestamps were allocated and could have resulted in a stall. We won&apos;t introduce any new write conflicts for a code path that&apos;s inherently safe.&lt;/p&gt;

&lt;p&gt;That said, we aren&apos;t fully aware of all the cases where we have this race. From the stalls we&apos;ve investigated, some don&apos;t seem to be this specific scenario with vectored inserts against a collection with a non-_id unique index (but we were unable to rule it out entirely &amp;#8211; we didn&apos;t have visibility into unsharded collections and their index specifications).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Also, I wonder if there is any mechanism in the error returned to indicate to a user why the are seeing a write conflict?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&apos;m not familiar with any mechanism. I know we already struggle to return users an appropriate error message when violating a unique constraint for index keys in the presence of a non-default collation. This feels like a similar problem.&lt;/p&gt;

&lt;p&gt;[1] All of these prepare conflicts being transformed into a write conflict could* already be a write conflict today if, for example, the vectored insert tries to write to the document before the &quot;prepared operation&quot; goes into a prepared state. If the vectored insert was not part of an MDB transaction, the write conflict will be retried internally. If it were part of an MDB transaction, the transaction would be aborted and the application would have to retry.&lt;/p&gt;

&lt;p&gt;Applications that are already resilient to write conflicts in their MDB transactions today should continue to be so after this patch. As noted above, this patch will make the window where applications can see write conflicts change from a CPU timescale to network. Thus it&apos;s plausible this could expose retrying bugs in applications that were (un?)lucky enough to not run into them yet.&lt;/p&gt;</comment>
                            <comment id="3866888" author="bruce.lucas@10gen.com" created="Tue, 8 Jun 2021 17:45:13 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.gottlieb&quot; class=&quot;user-hover&quot; rel=&quot;daniel.gottlieb&quot;&gt;daniel.gottlieb&lt;/a&gt;, does this have the possibility of user operations that didn&apos;t previously encounter write conflict errors, or were unlikely to, to now possibly see a write conflict? That&apos;s not necessarily a problem (unless it makes operations &lt;em&gt;likely&lt;/em&gt; to see write conflicts at a high rate), but it may be something we need to be aware of in case customers have questions.&lt;/p&gt;

&lt;p&gt;Also, I wonder if there is any mechanism in the error returned to indicate to a user &lt;em&gt;why&lt;/em&gt; the are seeing a write conflict? We have seen cases where write conflicts can be generated that catch users by surprise (even though we say they should always be prepared to handle write conflicts).&lt;/p&gt;</comment>
                            <comment id="3863151" author="daniel.gottlieb@10gen.com" created="Mon, 7 Jun 2021 18:20:58 +0000"  >&lt;p&gt;For this ticket I plan on failing operations with a &lt;tt&gt;WriteConflictException&lt;/tt&gt; that:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;hit &lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/src/mongo/db/storage/wiredtiger/wiredtiger_prepare_conflict.h#L74&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;a prepare conflict error&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;and are holding open an oplog hole&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This resolution should eliminate the possibility that any deployments in the wild gets stuck in the way this ticket describes. However, this change won&apos;t discover existing potential problems that are not already being exercised. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57506&quot; title=&quot;Eagerly fail when a timestamped transaction enters a prepareConflictRetry loop&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57506&quot;&gt;&lt;del&gt;SERVER-57506&lt;/del&gt;&lt;/a&gt; is for a change that can identify problematic transactions without requiring they hit a prepare conflict.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1897937">SERVER-60682</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2028940">SERVER-65821</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1770879">SERVER-57506</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1611830">SERVER-54284</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>10.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="21777"><![CDATA[v5.0]]></customfieldvalue>
    <customfieldvalue key="18953"><![CDATA[v4.4]]></customfieldvalue>
    <customfieldvalue key="16775"><![CDATA[v4.2]]></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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000vdDucQAE]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 7 Jun 2021 18:20:58 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 34 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>
                            2 years, 34 weeks, 6 days ago
                        </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>bruce.lucas@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzjvh3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hz4grz:</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="5035">Repl 2021-06-14</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|hzjhq7:</customfieldvalue>

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