<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:14:47 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-47636] Force reconfig running concurrently with step up can cause reconfig in drain mode to fail</title>
                <link>https://jira.mongodb.org/browse/SERVER-47636</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;After a node has been elected primary and drained the ops from its buffer, it will &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/replication_coordinator_impl.cpp#L1149&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;check if it needs to run a reconfig&lt;/a&gt; to increment its config term. It does this under the replication coordinator mutex, but then releases the lock before running the reconfig. If a force reconfig is running concurrently it may install a new config with term -1 after we do this check and release our lock but before we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/replication_coordinator_impl.cpp#L1162&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;run the reconfig&lt;/a&gt;. If this happens, we will then try to run a reconfig where we set the config version to the version installed by the force reconfig, and the config term to the node&apos;s current term. If the force reconfig installed version &apos;version&apos; and the node&apos;s current term is &apos;term&apos;, then we will run a reconfig to (version, term), while our current config is (version, -1). Since we ignore terms for config comparison if either term is -1, this will not pass the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/repl_set_config_checks.cpp#L226-L234&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;validation check&lt;/a&gt; that the new config has a newer version and term than the current config. We will return this error and then &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/replication_coordinator_impl.cpp#L1171-L1180&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;fassert&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;To address this, we may want to consider preventing force reconfigs from running concurrently with a node while in drain mode. For non force reconfigs, we should already prevent this since we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/replication_coordinator_impl.cpp#L3296-L3302&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;check&lt;/a&gt; &lt;tt&gt;canAcceptNonLocalWrites&lt;/tt&gt;, but we bypass these checks for force reconfigs, since they can run on a secondary.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1319696">SERVER-47636</key>
            <summary>Force reconfig running concurrently with step up can cause reconfig in drain mode to fail</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="william.schultz@mongodb.com">William Schultz</assignee>
                                    <reporter username="william.schultz@mongodb.com">William Schultz</reporter>
                        <labels>
                            <label>safe-reconfig-related</label>
                    </labels>
                <created>Fri, 17 Apr 2020 18:22:05 +0000</created>
                <updated>Sun, 29 Oct 2023 22:09:19 +0000</updated>
                            <resolved>Wed, 22 Apr 2020 15:07:58 +0000</resolved>
                                    <version>4.5.1</version>
                    <version>4.4.0-rc1</version>
                                    <fixVersion>4.4.0-rc4</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="3067778" author="xgen-internal-githook" created="Mon, 4 May 2020 18:46:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;username&apos;: &apos;will62794&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47636&quot; title=&quot;Force reconfig running concurrently with step up can cause reconfig in drain mode to fail&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47636&quot;&gt;&lt;del&gt;SERVER-47636&lt;/del&gt;&lt;/a&gt; Handle force reconfig running concurrently with reconfig on step up&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 4fe9db02bbd3087c53e481367d2c68e117305557)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/2c34abb5bbf0c89cb22d0ce262afc7e70b11787c&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/2c34abb5bbf0c89cb22d0ce262afc7e70b11787c&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3050041" author="xgen-internal-githook" created="Tue, 21 Apr 2020 22:01:48 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;, &apos;username&apos;: &apos;will62794&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47636&quot; title=&quot;Force reconfig running concurrently with step up can cause reconfig in drain mode to fail&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47636&quot;&gt;&lt;del&gt;SERVER-47636&lt;/del&gt;&lt;/a&gt; Handle force reconfig running concurrently with reconfig on step up&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4fe9db02bbd3087c53e481367d2c68e117305557&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4fe9db02bbd3087c53e481367d2c68e117305557&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3045844" author="william.schultz" created="Sat, 18 Apr 2020 13:00:29 +0000"  >&lt;p&gt;Sounds good to me. Doing this to allow force reconfigs during a long drain mode makes sense. &lt;/p&gt;</comment>
                            <comment id="3045806" author="siyuan.zhou@10gen.com" created="Sat, 18 Apr 2020 03:29:41 +0000"  >&lt;p&gt;I think we can just check whether the config term and version changed since &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b8a60ff13e8b3b99e3fd3c030d4ffcef4e223dc5/src/mongo/db/repl/replication_coordinator_impl.cpp#L1149&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this line&lt;/a&gt;. It seems less ideal to ban force reconfig or heartbeat reconfig during primary catchup and drain mode since catchup and drain mode may run for a long time.&lt;/p&gt;</comment>
                            <comment id="3045538" author="william.schultz" created="Fri, 17 Apr 2020 20:29:11 +0000"  >&lt;p&gt;Yes, that option also seems correct, but it seems essentially to be an alternate implementation of the concurrency control mechanisms we already have in place. Namely, the use of the &lt;tt&gt;canAcceptWrites&lt;/tt&gt; flag to guard step up and drain mode. Checking that the config version and term do not change throughout the duration of step up (which you suggest) is a way to check if any concurrent reconfigs ran during this time. I feel that using the existing &lt;tt&gt;_canAcceptNonLocalWrites&lt;/tt&gt; mechanism is more logical and does not introduce a new means of concurrency control to reason about. Also, I don&apos;t see any particular benefit of allowing force reconfigs to run concurrently with step up, so it seems simpler and safer to prevent it entirely, rather than allow them to proceed optimistically and abort the step up reconfig if they conflict with it.&lt;/p&gt;</comment>
                            <comment id="3045390" author="siyuan.zhou@10gen.com" created="Fri, 17 Apr 2020 19:25:05 +0000"  >&lt;p&gt;Great catch &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=william.schultz&quot; class=&quot;user-hover&quot; rel=&quot;william.schultz&quot;&gt;william.schultz&lt;/a&gt;! I agree that&apos;s one option. What if we always allow force reconfig and check the config version and term is still the same in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/9f01b5403b3eb01f4d8f437fe0ef99910130b7cc/src/mongo/db/repl/replication_coordinator_impl.cpp#L1156-L1160&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;getNewConfig&lt;/tt&gt;&lt;/a&gt;. If not, return &lt;tt&gt;ConfigurationInProgress&lt;/tt&gt; which will be ignored in stepup. The reconfig on stepup is expected to fail if there&apos;s a concurrent reconfig.&lt;/p&gt;</comment>
                            <comment id="3045374" author="william.schultz" created="Fri, 17 Apr 2020 19:15:20 +0000"  >&lt;p&gt;While we should fix this, I don&apos;t think it&apos;s particularly urgent since it only occurs when a force reconfig is running concurrently (on the same node) with an election, so it is probably not hit very often. It causes the current primary to crash which isn&apos;t great but there are no other safety/correctness violations. Flagging for scheduling so we can triage it as normal.&lt;/p&gt;</comment>
                            <comment id="3045328" author="william.schultz" created="Fri, 17 Apr 2020 18:58:07 +0000"  >&lt;p&gt;For non force reconfigs, we do already enforce concurrency control between step up and reconfigs by checking &lt;tt&gt;_rsConfigState&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/edb8778350326d2b33f056b1b5f0b25a4b5b444a/src/mongo/db/repl/replication_coordinator_impl_elect_v1.cpp#L102-L118&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;before running for election&lt;/a&gt;, and by checking &lt;tt&gt;canAcceptNonLocalWrites&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fca4421ffab68ae0b62c36a7505e6045428ce2e5/src/mongo/db/repl/replication_coordinator_impl.cpp#L3296&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;before running a reconfig&lt;/a&gt;. &lt;tt&gt;canAcceptNonLocalWrites&lt;/tt&gt; is only set to true once a step up is fully complete and we only set our config state back to &lt;tt&gt;kConfigSteady&lt;/tt&gt; once a reconfig is fully complete so this should effectively serialize reconfigs with respect to stepup/elections. Force reconfigs are the exception, though. We cannot make the precondition checks for force reconfig behavior exactly the same as non-force because force reconfigs must be allowed to run on a secondary. I think that we can instead require that force reconfigs can only be run against a fully writable primary or against a node in SECONDARY state. This would serve to serialize force reconfigs with respect to step up on a primary, and still allow force reconfigs on secondary.  This would be a relatively simple fix i.e. we could just change &lt;a href=&quot;https://github.com/mongodb/mongo/blob/fca4421ffab68ae0b62c36a7505e6045428ce2e5/src/mongo/db/repl/replication_coordinator_impl.cpp#L3296&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;this condition&lt;/a&gt; to be more strict about force reconfigs. The condition for a force reconfig succeeding would become:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;_readWriteAbility-&amp;gt;canAcceptNonLocalWrites(lk) || _memberState.secondary();&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;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=siyuan.zhou&quot; class=&quot;user-hover&quot; rel=&quot;siyuan.zhou&quot;&gt;siyuan.zhou&lt;/a&gt; Any thoughts?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1293070">SERVER-47142</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="256499" name="force_reconfig_drain_mode_repro.diff" size="3288" author="william.schultz@mongodb.com" created="Fri, 17 Apr 2020 18:19:49 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.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="18953"><![CDATA[v4.4]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 17 Apr 2020 19:25:05 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 40 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


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

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 40 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>42.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>siyuan.zhou@mongodb.com</customfieldvalue>
            <customfieldvalue>william.schultz@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxg35r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwy8qn:</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="3881">Repl 2020-05-04</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Applying this diff (&lt;span class=&quot;nobr&quot;&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/attachment/256499/256499_force_reconfig_drain_mode_repro.diff&quot; title=&quot;force_reconfig_drain_mode_repro.diff attached to SERVER-47636&quot;&gt;force_reconfig_drain_mode_repro.diff&lt;sup&gt;&lt;img class=&quot;rendericon&quot; src=&quot;https://jira.mongodb.org/images/icons/link_attachment_7.gif&quot; height=&quot;7&quot; width=&quot;7&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;) on this &lt;a href=&quot;https://github.com/mongodb/mongo/commit/f86e2c64e3d3b534a5d1d5ff1f32df8a4d05600d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;commit&lt;/a&gt; and running the following commands should reproduce the bug:&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;ninja -j400 build/ninja/mongo/db/repl/db_repl_coordinator_test&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;build/ninja/mongo/db/repl/db_repl_coordinator_test  --suite ReplCoordTest --filter NodeReturnsNotMasterWhenRunningForceReconfigWhileInDrainMode&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</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|hxfpf3:</customfieldvalue>

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