<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:12:55 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-46962] Test new sync source in quiesce mode</title>
                <link>https://jira.mongodb.org/browse/SERVER-46962</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Test that fetching oplog from a new sync source that is in quiesce mode fails to establish a connection, causing the server to reenter sync source selection.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1280831">SERVER-46962</key>
            <summary>Test new sync source in quiesce mode</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="pavithra.vetriselvan@mongodb.com">Pavithra Vetriselvan</assignee>
                                    <reporter username="tess.avitabile@mongodb.com">Tess Avitabile</reporter>
                        <labels>
                    </labels>
                <created>Wed, 18 Mar 2020 19:48:18 +0000</created>
                <updated>Sun, 29 Oct 2023 22:10:35 +0000</updated>
                            <resolved>Fri, 26 Jun 2020 00:53:50 +0000</resolved>
                                                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="3225057" author="xgen-internal-githook" created="Fri, 26 Jun 2020 00:45:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46962&quot; title=&quot;Test new sync source in quiesce mode&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46962&quot;&gt;&lt;del&gt;SERVER-46962&lt;/del&gt;&lt;/a&gt; Blacklist sync sources that are shutting down&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b281adecd42a0d638d31acbf36a7affc5c0db3f9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b281adecd42a0d638d31acbf36a7affc5c0db3f9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3216665" author="xgen-internal-githook" created="Mon, 22 Jun 2020 01:14:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Pavi Vetriselvan&apos;, &apos;email&apos;: &apos;pvselvan@umich.edu&apos;, &apos;username&apos;: &apos;pvselvan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46962&quot; title=&quot;Test new sync source in quiesce mode&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46962&quot;&gt;&lt;del&gt;SERVER-46962&lt;/del&gt;&lt;/a&gt; add optional parameter when creating ErrorExtraInfo class&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2cc507c7c4199aeddd698a277a346b2acfa1c224&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2cc507c7c4199aeddd698a277a346b2acfa1c224&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3134135" author="pavithra.vetriselvan" created="Thu, 28 May 2020 15:14:23 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt; Yep, you&apos;re right!&lt;/p&gt;

&lt;p&gt;Got it, I&apos;ll look into using &lt;tt&gt;replSetSyncFrom&lt;/tt&gt;, thanks for the input everyone!&lt;/p&gt;</comment>
                            <comment id="3133632" author="tess.avitabile" created="Thu, 28 May 2020 12:43:44 +0000"  >&lt;p&gt;Thanks for the investigation, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=pavithra.vetriselvan&quot; class=&quot;user-hover&quot; rel=&quot;pavithra.vetriselvan&quot;&gt;pavithra.vetriselvan&lt;/a&gt;! The changes you propose sound right to me. For (1), I wonder if the right place to prevent the OplogFetcher from retrying in response to ShutdownInProgress is in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/116d80c8267425fb71043f5a1200993355917707/src/mongo/db/repl/oplog_fetcher.cpp#L898-L916&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;OplogFetcherRestartDecisionDefault::shouldContinue()&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&apos;d recommend testing that we cannot choose a sync source that is in quiesce mode by running &lt;tt&gt;replSetSyncFrom&lt;/tt&gt; to sync from the node that is in quiesce mode and making sure that the node instead eventually syncs from the primary (in this case, we would not create a partition between the node and the primary).&lt;/p&gt;</comment>
                            <comment id="3132829" author="samy.lanka" created="Wed, 27 May 2020 21:28:25 +0000"  >&lt;p&gt;The way sync source selection works is that the Sync Source Resolver will request a candidate from the topology coordinator by calling &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9c6aaddf5235a45cfffde6c152d67a4df9f90e0c/src/mongo/db/repl/topology_coordinator.cpp#L240&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;chooseNewSyncSource&lt;/tt&gt;&lt;/a&gt;. When that function chooses a new sync source candidate, it will &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9c6aaddf5235a45cfffde6c152d67a4df9f90e0c/src/mongo/db/repl/topology_coordinator.cpp#L281&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;set the &lt;tt&gt;_syncSource&lt;/tt&gt; field&lt;/a&gt; which will be used to &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9c6aaddf5235a45cfffde6c152d67a4df9f90e0c/src/mongo/db/repl/topology_coordinator.cpp#L1812&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;populate the syncSourceHost in replSetGetStatus&lt;/a&gt;. So even though we fail sync from that node because we couldn&apos;t create an oplog fetcher, until we either clear the sync source or find a new one, replsetGetStatus will report that node as its sync source. I think we&apos;ll need to find a different way to check that the node fails to sync from the node in quiesce mode. &lt;/p&gt;</comment>
                            <comment id="3132821" author="pavithra.vetriselvan" created="Wed, 27 May 2020 21:25:40 +0000"  >&lt;p&gt;Logs where we do not blacklist node1 after oplog fetcher errors: &lt;a href=&quot;https://logkeeper.mongodb.org/lobster/logdrop#bookmarks=1751%2C1752%2C1753%2C1759%2C1760%2C1761%2C1762&amp;amp;f~=000~sdlfkj&amp;amp;l=1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logkeeper.mongodb.org/lobster/logdrop#bookmarks=1751%2C1752%2C1753%2C1759%2C1760%2C1761%2C1762&amp;amp;f~=000~sdlfkj&amp;amp;l=1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Logs where we blacklist the node in the sync source resolver: &lt;a href=&quot;https://logkeeper.mongodb.org/lobster/logdrop#bookmarks=1607%2C2380%2C3177&amp;amp;f~=000~Blackli&amp;amp;l=1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logkeeper.mongodb.org/lobster/logdrop#bookmarks=1607%2C2380%2C3177&amp;amp;f~=000~Blackli&amp;amp;l=1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3132804" author="pavithra.vetriselvan" created="Wed, 27 May 2020 21:19:14 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=samy.lanka&quot; class=&quot;user-hover&quot; rel=&quot;samy.lanka&quot;&gt;samy.lanka&lt;/a&gt; While writing the test for this ticket (test file attached), I ran into some unexpected behavior with sync source selection.&lt;/p&gt;

&lt;p&gt;To start, this ticket is distinct from &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46961&quot; title=&quot;Test sync source in quiesce mode&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46961&quot;&gt;&lt;del&gt;SERVER-46961&lt;/del&gt;&lt;/a&gt;. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-46961&quot; title=&quot;Test sync source in quiesce mode&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-46961&quot;&gt;&lt;del&gt;SERVER-46961&lt;/del&gt;&lt;/a&gt; tests that a syncing node can still read from an existing sync source once it has gone into quiesce mode. This ticket ensures that we do not sync from a node that is already in quiesce mode, since attempting to connect to it will result in a &quot;ShutdownInProgress&quot; error. We should select another sync source. &lt;/p&gt;

&lt;p&gt;In my test, I try to force this scenario by creating a 3 node replica set. node0 is the primary, node1 is the syncSource, and node2 is the syncingNode. I disconnect the primary from node2 and then stop server replication on node2 (from my understanding, this prevents us from running through the _produce loop in bgsync). This way, node2 will only be able to choose node1 as its sync source when we do restart replication. &lt;/p&gt;

&lt;p&gt;After doing a couple writes on node1 so that it is ahead of node2, we cause it to enter quiesce mode. We then restart replication on node2. From the following logs, we can see that the oplog fetcher gets a &lt;tt&gt;ShutdownInProgress&lt;/tt&gt; error:&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.218-0400 d20032| 2020-05-27T16:21:21.218-04:00 I  REPL     21799   [BackgroundSync] &quot;Sync source candidate chosen&quot;,&quot;attr&quot;:{&quot;syncSource&quot;:&quot;pavijuicepotion:20021&quot;}&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.219-0400 d20032| 2020-05-27T16:21:21.219-04:00 I  REPL     21088   [BackgroundSync] &quot;Changed sync source&quot;,&quot;attr&quot;:{&quot;oldSyncSource&quot;:&quot;empty&quot;,&quot;newSyncSource&quot;:&quot;pavijuicepotion:20021&quot;}&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.219-0400 d20032| 2020-05-27T16:21:21.219-04:00 I  REPL     21092   [BackgroundSync] &quot;Scheduling fetcher to read remote oplog&quot;,&quot;attr&quot;:{&quot;syncSource&quot;:&quot;pavijuicepotion:20021&quot;,&quot;lastOpTimeFetched&quot;:{&quot;ts&quot;:{&quot;$timestamp&quot;:{&quot;t&quot;:1590610877,&quot;i&quot;:2}},&quot;t&quot;:1}}&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.221-0400 d20032| 2020-05-27T16:21:21.220-04:00 I  REPL     21275   [ReplCoordExtern-2] &quot;Recreating cursor for oplog fetcher due to error&quot;,&quot;attr&quot;:{&quot;lastOpTimeFetched&quot;:{&quot;ts&quot;:{&quot;$timestamp&quot;:{&quot;t&quot;:1590610877,&quot;i&quot;:2}},&quot;t&quot;:1},&quot;attemptsRemaining&quot;:1,&quot;error&quot;:&quot;ShutdownInProgress: The server is in quiesce mode and will shut down&quot;}&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.221-0400 d20032| 2020-05-27T16:21:21.221-04:00 I  REPL     23437   [ReplCoordExtern-2] &quot;OplogFetcher reconnecting due to error&quot;,&quot;attr&quot;:{&quot;error&quot;:{&quot;code&quot;:91,&quot;codeName&quot;:&quot;ShutdownInProgress&quot;,&quot;errmsg&quot;:&quot;The server is in quiesce mode and will shut down&quot;}}&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.221-0400 d20032| 2020-05-27T16:21:21.221-04:00 I  REPL     1       [ReplCoordExtern-2] &quot;PAVI returned from checkConnection&quot;&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;[js_test:new_sync_source_in_quiesce_mode] 2020-05-27T16:21:21.221-0400 d20032| 2020-05-27T16:21:21.221-04:00 I  REPL     1       [ReplCoordExtern-2] &quot;PAVI oplog fetcher reconnected&quot;&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;The logs I added correspond to the lines &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ef00aa502d7b74e19bc3b6b76f285c9860da3e/src/mongo/db/repl/oplog_fetcher.cpp#L422&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ef00aa502d7b74e19bc3b6b76f285c9860da3e/src/mongo/db/repl/oplog_fetcher.cpp#L431&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;One thing I noticed is that we never enter the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ef00aa502d7b74e19bc3b6b76f285c9860da3e/src/mongo/client/dbclient_connection.cpp#L552&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_checkConnection&lt;/a&gt; function in DBClientConnection, which attempts to re-establish connections. I think this is likely because we&apos;re not in a failed state &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ef00aa502d7b74e19bc3b6b76f285c9860da3e/src/mongo/client/dbclient_connection.h#L291&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; (_failed defaults to false)?&lt;/p&gt;

&lt;p&gt;In my test, I would have expected the call to &lt;tt&gt;rst.awaitSyncSource&lt;/tt&gt; to hang since we got this error from the oplog fetcher, but it looks like we are listing node1 as our sync source. awaitSyncSource checks the syncSourceHost field from replSetGetStatus. &lt;/p&gt;

&lt;p&gt;The test is passing, and I&apos;m not sure if it&apos;s intended behavior that we still list node1 as our sync source even though the oplog fetcher returned a &lt;tt&gt;ShutdownInProgress&lt;/tt&gt; error.&lt;/p&gt;

&lt;p&gt;Something else I noticed while looking through the code is that we will blacklist candidates if we encounter an error in the sync source resolver &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ef00aa502d7b74e19bc3b6b76f285c9860da3e/src/mongo/db/repl/sync_source_resolver.cpp#L317-L332&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. So, I think the only changes we need to make are:&lt;br/&gt;
1) exit the oplog fetcher early if we fail to connect to a sync source because of a &lt;tt&gt;ShutdownInProgress&lt;/tt&gt; error &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9618b190e396cfdbf920ac1e7a4177a3c973b46c/src/mongo/db/repl/oplog_fetcher.cpp#L430-L432&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9618b190e396cfdbf920ac1e7a4177a3c973b46c/src/mongo/db/repl/oplog_fetcher.cpp#L369-L381m&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;.&lt;br/&gt;
2) Once we make sure the oplog fetcher returns the ShutdownInProgress error to bgsync, make sure to blacklist the sync source somwhere &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9618b190e396cfdbf920ac1e7a4177a3c973b46c/src/mongo/db/repl/bgsync.cpp#L602-L607&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Once these changes are made, I assume that my test will no longer pass because node1 will never become node2&apos;s sync source. &lt;/p&gt;

&lt;p&gt;Samy, do the theories/changes sound correct to you?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1280602">SERVER-46952</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1283988">SERVER-47017</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="262971" name="new_sync_source_in_quiesce_mode.js" size="1976" author="pavithra.vetriselvan@mongodb.com" created="Wed, 27 May 2020 21:23:56 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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>Wed, 27 May 2020 21:19:14 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 32 weeks, 6 days 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-46952'>SERVER-46952</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-47017'>SERVER-47017</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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1703</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, 32 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>pavithra.vetriselvan@mongodb.com</customfieldvalue>
            <customfieldvalue>samy.lanka@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hx9mq7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwxe1b:</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="3934">Repl 2020-06-01</customfieldvalue>
    <customfieldvalue id="3935">Repl 2020-06-15</customfieldvalue>
    <customfieldvalue id="3999">Repl 2020-06-29</customfieldvalue>

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

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

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