<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:17:57 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-48734] Fix db_repl_test in TSAN</title>
                <link>https://jira.mongodb.org/browse/SERVER-48734</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;db_repl_test failed under TSAN. And one reason was because of concurrent writes of &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b21647a5e19e5980186e57f77be0b1e0ef92a087/src/mongo/util/elapsed_tracker.cpp#L48&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;_pings&lt;/tt&gt; in &lt;tt&gt;ElapsedTracker&lt;/tt&gt;&lt;/a&gt;. But &lt;tt&gt;_pings&lt;/tt&gt; is an &lt;tt&gt;int32_t&lt;/tt&gt; and it should be &lt;a href=&quot;https://github.com/google/sanitizers/wiki/ThreadSanitizerPopularDataRaces#simple-race&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;harmless except for imprecise counts&lt;/a&gt;. So maybe we should fix &lt;tt&gt;ElapsedTracker&lt;/tt&gt; to make it thread-safe, with AtomicWord or mutexes.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;ElapsedTracker&lt;/tt&gt; is not owned by repl. However, more data races could come up in the test once we fix &lt;tt&gt;ElapsedTracker&lt;/tt&gt;. So it is hard to estimate how long it would take to make the test pass.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1378642">SERVER-48734</key>
            <summary>Fix db_repl_test in TSAN</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="lingzhi.deng@mongodb.com">Lingzhi Deng</assignee>
                                    <reporter username="lingzhi.deng@mongodb.com">Lingzhi Deng</reporter>
                        <labels>
                            <label>thread-sanitizer</label>
                    </labels>
                <created>Thu, 11 Jun 2020 18:15:22 +0000</created>
                <updated>Sun, 29 Oct 2023 22:07:09 +0000</updated>
                            <resolved>Tue, 7 Jul 2020 15:18:18 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3272125" author="xgen-internal-githook" created="Tue, 7 Jul 2020 14:13:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Lingzhi Deng&apos;, &apos;email&apos;: &apos;lingzhi.deng@mongodb.com&apos;, &apos;username&apos;: &apos;ldennis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48734&quot; title=&quot;Fix db_repl_test in TSAN&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48734&quot;&gt;&lt;del&gt;SERVER-48734&lt;/del&gt;&lt;/a&gt;: Fix db_repl_test in TSAN&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/95ee10210b3b92b166410e70b33a5fce39ec0958&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/95ee10210b3b92b166410e70b33a5fce39ec0958&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3214477" author="lingzhi.deng" created="Thu, 18 Jun 2020 16:26:32 +0000"  >&lt;p&gt;Thanks for the investigation and that makes sense. Since there could be more issues along the way to make the whole unittest pass (and many of them may be common issues shared with other failures in the TSAN build variant), I think this might eventually get too big. I agree with you to have a seperate ticket for this, at least to double check that this is safe. So I filed &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48964&quot; title=&quot;Potential data race in LockRequest.status&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48964&quot;&gt;&lt;del&gt;SERVER-48964&lt;/del&gt;&lt;/a&gt;.&lt;br/&gt;
I will try with your patch and continue my investigation for other issues we may still have for the repl unittests.&lt;/p&gt;</comment>
                            <comment id="3214447" author="louis.williams" created="Thu, 18 Jun 2020 16:10:35 +0000"  >&lt;p&gt;For example, this patch may fix the problem:&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;diff --git a/src/mongo/db/concurrency/lock_manager.cpp b/src/mongo/db/concurrency/lock_manager.cpp&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;index a9c7983ab9..1c8025d760 100644&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;--- a/src/mongo/db/concurrency/lock_manager.cpp&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;+++ b/src/mongo/db/concurrency/lock_manager.cpp&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;@@ -221,7 +221,9 @@ struct LockHead {&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;&amp;nbsp;&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;         // No conflict, new request&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;-        request-&amp;gt;status = LockRequest::STATUS_GRANTED;&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;+        if (request-&amp;gt;status != LockRequest::STATUS_GRANTED) {&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;+            request-&amp;gt;status = LockRequest::STATUS_GRANTED;&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;&amp;nbsp;&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;         grantedList.push_back(request);&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;         incGrantedModeCount(request-&amp;gt;mode);&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;&#160;&lt;/p&gt;</comment>
                            <comment id="3214418" author="louis.williams" created="Thu, 18 Jun 2020 16:01:56 +0000"  >&lt;p&gt;I updated my comment to provide a more thorough explanation of the failure. We should open a separate ticket to evaluate these issues. I&apos;m not an expert on the LockManager, but I think there is more investigation to be done here.&lt;/p&gt;

&lt;p&gt;In this instance, I think a fix would be to have the LockManager only write the state of an existing LockRequest if it isn&apos;t already STATUS_GRANTED.&#160;&lt;/p&gt;</comment>
                            <comment id="3214368" author="lingzhi.deng" created="Thu, 18 Jun 2020 15:47:14 +0000"  >&lt;p&gt;Yes, but what the stack trace shown was that two threads called &lt;tt&gt;_lockBegin&lt;/tt&gt; at the same time (which I believe violates how we should use the Locker) where one thread &lt;a href=&quot;https://github.com/mongodb/mongo/blob/02ceb3f342d4295aef49b3b1d5479930496186f0/src/mongo/db/concurrency/lock_state.cpp#L839&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;inserted a request to the &lt;tt&gt;_requests&lt;/tt&gt; map&lt;/a&gt; and subsequently modified the newly inserted request object in &lt;tt&gt;LockHead::newRequest&lt;/tt&gt; while the other thread was at a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/02ceb3f342d4295aef49b3b1d5479930496186f0/src/mongo/db/concurrency/lock_state.cpp#L831&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;dassert&lt;/a&gt; looping through the &lt;tt&gt;_requests&lt;/tt&gt; map, accessing each request object in the map.&lt;/p&gt;

&lt;p&gt;If locking under multiple threads is not a proper way to use the Locker and you think this won&apos;t happen in production code, then maybe we should rewrite the test? The test currently uses the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d7f09737cb3354b45368c373169156140b933773/src/mongo/db/repl/rs_rollback_test.cpp#L1042-L1051&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;same opCtx for the rollback (and index builds) and the test thread&lt;/a&gt;. Maybe we can use a different opCtx for the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/d7f09737cb3354b45368c373169156140b933773/src/mongo/db/repl/rs_rollback_test.cpp#L1050-L1052&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;test&lt;/a&gt;?&lt;/p&gt;</comment>
                            <comment id="3214355" author="acm" created="Thu, 18 Jun 2020 15:41:54 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=louis.williams&quot; class=&quot;user-hover&quot; rel=&quot;louis.williams&quot;&gt;louis.williams&lt;/a&gt; - &quot;failing TSAN&quot; isn&apos;t really an option though, as we intend to run the entire server test suite under TSAN. Accessing the same resource under different mutexes isn&apos;t generally guaranteed to have the intended synchronization effects. Could you please elaborate on why it is safe to do so for the lock manager? And we will need some way forward: either revising the lock manager in a way that makes clear to TSAN the synchronization edges that render the behavior safe, or blacklisting the lock manager from TSAN, or suppressing the error at runtime. The latter two are less preferred answers, because it means that the lock manager will have no/reduced thread sanitizer coverage, despite sounding like something for which TSAN coverage would in fact be ideal.&lt;/p&gt;</comment>
                            <comment id="3214314" author="louis.williams" created="Thu, 18 Jun 2020 15:28:56 +0000"  >&lt;p&gt;Under the same Locker, no.&#160;Internally in the lock manager, multiple threads may access resources under different mutexes (as seen), but that is intended. Our lock manager will probably fail TSAN because of this, but I think we should take a look just to confirm.&lt;/p&gt;

&lt;p&gt;It seems like&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/31a64f0cc546f325e1773091562f15264049c2d1/src/mongo/db/concurrency/lock_state.cpp#L831&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this debug assertion&lt;/a&gt; is causing problems because it&apos;s reading its&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/31a64f0cc546f325e1773091562f15264049c2d1/src/mongo/db/concurrency/lock_state.cpp#L684-L685&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;already-granted LockRequests&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The migratePartitionedLockHeads code is called when an operation tries to acquire a non-partitioned lock mode, S or X, which happens &lt;a href=&quot;https://github.com/mongodb/mongo/blob/31a64f0cc546f325e1773091562f15264049c2d1/src/mongo/db/repl/rs_rollback_test.cpp#L851&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; in the test.&lt;/p&gt;

&lt;p&gt;This is what is happening: an index build is holding an IX Database lock and attempting to take an IX Collection lock. This is concurrent with an operation taking an X Database lock. The database X lock acquisition does a migration of all other Database IX locks and ends up &lt;a href=&quot;https://github.com/mongodb/mongo/blob/31a64f0cc546f325e1773091562f15264049c2d1/src/mongo/db/concurrency/lock_manager.cpp#L224&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;writing over&lt;/a&gt; the index build thread&apos;s existing IX database LockRequest with STATUS_GRANTED, even though the existing request would have already been in the same state. The index build thread only observed this because of the debug assertion on getWaitingStatus(). The net effect is that the thread sanitizer fails.&lt;/p&gt;

&lt;p&gt;I&apos;m not sure what the procedure is for TSAN failures since this is new, but we make this specific failure go away by changing the test to take a Collection X locks instead of a Database X locks (they shouldn&apos;t be there, anyway). There might still be TSAN failures in this unit test and outside, however, and we would need to investigate those, too.&lt;/p&gt;</comment>
                            <comment id="3206394" author="lingzhi.deng" created="Fri, 12 Jun 2020 00:42:17 +0000"  >&lt;p&gt;The third issue is the ReplicationCoordinatorMock, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-48687&quot; title=&quot;ReplicationCoordinatorMock is not thread safe and causes errors with tsan&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-48687&quot;&gt;&lt;del&gt;SERVER-48687&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3206391" author="lingzhi.deng" created="Fri, 12 Jun 2020 00:41:26 +0000"  >&lt;p&gt;Another issue is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/7074dee1fbf6763c0d463c377c2e47d8ef2c4f6f/src/mongo/db/repl/oplog_fetcher_test.cpp#L667&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;sharedCallbackStateDestroyed&lt;/tt&gt;&lt;/a&gt; in oplog_fetcher_test.cpp should be AtomicWord&amp;lt;bool&amp;gt; because it is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/7074dee1fbf6763c0d463c377c2e47d8ef2c4f6f/src/mongo/db/repl/oplog_fetcher_test.cpp#L686&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;set in the oplog fetcher callback&lt;/a&gt; but is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/7074dee1fbf6763c0d463c377c2e47d8ef2c4f6f/src/mongo/db/repl/oplog_fetcher_test.cpp#L721&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;read in the test thread&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1376965">SERVER-48687</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1383951">SERVER-48964</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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>2.0</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 18 Jun 2020 15:28:56 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 31 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-48687'>SERVER-48687</a></s>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 31 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>0.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>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>lingzhi.deng@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxplan:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxco3j:</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="3999">Repl 2020-06-29</customfieldvalue>
    <customfieldvalue id="4033">Repl 2020-07-13</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|hxp7jz:</customfieldvalue>

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