<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:53:41 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-39976] Two-phase index builds on primaries should ignore interrupts</title>
                <link>https://jira.mongodb.org/browse/SERVER-39976</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;A simultaneous index build should only be &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ca406e36dac858112259acace5859a304ae0de/src/mongo/db/index_builds_coordinator.cpp#L770&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;killable at shutdown&lt;/a&gt; when run on a secondary. We&apos;ll need to turn it off if the node steps up; and turn it on if the node steps down. InterruptedAtShutdown errors should still get through, but not killOp errors.&lt;/p&gt;</description>
                <environment></environment>
        <key id="710411">SERVER-39976</key>
            <summary>Two-phase index builds on primaries should ignore interrupts</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="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="dianna.hohensee@mongodb.com">Dianna Hohensee</reporter>
                        <labels>
                    </labels>
                <created>Wed, 6 Mar 2019 01:36:14 +0000</created>
                <updated>Mon, 8 Jan 2024 15:23:18 +0000</updated>
                            <resolved>Thu, 13 Feb 2020 20:24:02 +0000</resolved>
                                                    <fixVersion>4.3.4</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="2877370" author="milkie" created="Thu, 13 Feb 2020 20:24:03 +0000"  >&lt;p&gt;This commit changes the killop behavior for index builds.  Now, the only way to kill an index build is to killOp the connection operation (or use the dropIndexes command).  Previously, it was also possible to kill an index build by using killOp on the operation from the index builds coordinator; this is no longer possible.&lt;/p&gt;</comment>
                            <comment id="2843096" author="xgen-internal-githook" created="Fri, 7 Feb 2020 22:12:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;username&apos;: &apos;louiswilliams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39976&quot; title=&quot;Two-phase index builds on primaries should ignore interrupts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39976&quot;&gt;&lt;del&gt;SERVER-39976&lt;/del&gt;&lt;/a&gt; Two-phase index builds on primaries should ignore interrupts&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ab43da8de9068e5cd4ac31f069b33c4bc2d0dd90&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2499467" author="louis.williams" created="Thu, 24 Oct 2019 16:40:44 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=brian.lane&quot; class=&quot;user-hover&quot; rel=&quot;brian.lane&quot;&gt;brian.lane&lt;/a&gt;, yes I seems like we&apos;ve agreed to make index builds unkillable and require using the dropIndexes command to kill active builds instead, &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37726&quot; title=&quot;Make dropIndexes abort in-progress index builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37726&quot;&gt;&lt;del&gt;SERVER-37726&lt;/del&gt;&lt;/a&gt;. To reduce the length of the critical section, we will also do &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39458&quot; title=&quot;Add continuous draining on secondary&amp;#39;s index build thread while it awaits a commitIndexBuild oplog entry&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39458&quot;&gt;&lt;del&gt;SERVER-39458&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2498558" author="brian.lane" created="Thu, 24 Oct 2019 04:00:42 +0000"  >&lt;p&gt;Hey &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=benety.goh&quot; class=&quot;user-hover&quot; rel=&quot;benety.goh&quot;&gt;benety.goh&lt;/a&gt; - I believe it does.  &lt;/p&gt;

&lt;p&gt;If the decision was to take that approach, is that a fair statement &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;?&lt;/p&gt;

&lt;p&gt;I wasn&apos;t sure if &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; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt; discussed this offline as I wasn&apos;t sure what &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt; thought about &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39458&quot; title=&quot;Add continuous draining on secondary&amp;#39;s index build thread while it awaits a commitIndexBuild oplog entry&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39458&quot;&gt;&lt;del&gt;SERVER-39458&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;-Brian&lt;/p&gt;</comment>
                            <comment id="2489648" author="benety.goh" created="Fri, 18 Oct 2019 14:44:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=brian.lane&quot; class=&quot;user-hover&quot; rel=&quot;brian.lane&quot;&gt;brian.lane&lt;/a&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;, does &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37726&quot; title=&quot;Make dropIndexes abort in-progress index builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37726&quot;&gt;&lt;del&gt;SERVER-37726&lt;/del&gt;&lt;/a&gt; adequately describe the dropIndexes enhancements discussed in this ticket?&lt;/p&gt;</comment>
                            <comment id="2465789" author="brian.lane" created="Fri, 4 Oct 2019 05:51:30 +0000"  >&lt;p&gt;Hey &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; - I like the idea of using dropindex instead of adding another command.  To &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt;&apos;s point as well - if he is accepting of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39458&quot; title=&quot;Add continuous draining on secondary&amp;#39;s index build thread while it awaits a commitIndexBuild oplog entry&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39458&quot;&gt;&lt;del&gt;SERVER-39458&lt;/del&gt;&lt;/a&gt; then sgtm.  If not, I am happy to have more discussions.&lt;/p&gt;

&lt;p&gt;-Brian&lt;/p&gt;</comment>
                            <comment id="2448784" author="louis.williams" created="Wed, 2 Oct 2019 20:57:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=brian.lane&quot; class=&quot;user-hover&quot; rel=&quot;brian.lane&quot;&gt;brian.lane&lt;/a&gt;, can you read over my last comment and let me know what you think? Dianna brought up that it will lead to unexpected killOp behavior, which is true. The suggestion I made was to provide an alternative option to killing indexes, using dropIndex, or potentially a new command.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt; one of the main goals of this project is to have index builds survive stepdowns, so yes they will continue to be exceptional. Index builds yield locks frequently, but there is one main critical section. This is a long section at the end of the build where writes are blocked and the final entries are applied to the index. We do plan on making the length of that critical section as short as possible, see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39458&quot; title=&quot;Add continuous draining on secondary&amp;#39;s index build thread while it awaits a commitIndexBuild oplog entry&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39458&quot;&gt;&lt;del&gt;SERVER-39458&lt;/del&gt;&lt;/a&gt;, in anticipation of this problem. If we can put measures in place to shorten this critical section, which could block stepdown, do you think this is still a reasonable approach?&lt;/p&gt;</comment>
                            <comment id="2443875" author="jason.carey" created="Tue, 1 Oct 2019 20:39:34 +0000"  >&lt;p&gt;To chime in here, we currently have a policy of avoiding making opCtx&apos;s unkillable unless absolutely necessary.  In general, having unkillable ops makes it hard to reason about whether stepdown can succeed, reduces our ability to resolve things like prepare conflicts and generally indicates to me that we have some unfortunately long and dangerous critical section buried somewhere  (if the operation fails for some other reason, what state have we left the system in).&lt;/p&gt;

&lt;p&gt;Index builds have long been the exception to the rule, but every time we double down there I&apos;m going to want to bring this up again and make sure we&apos;ve exhausted our alternatives.&lt;/p&gt;</comment>
                            <comment id="2443626" author="dianna.hohensee" created="Tue, 1 Oct 2019 18:41:42 +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;, you should run the idea by product: making something on a primary unable to be killed. This will make the killOp cmd not work against everything: I believe today the only ops it cannot kill are replication threads on secondaries.&lt;/p&gt;</comment>
                            <comment id="2443512" author="louis.williams" created="Tue, 1 Oct 2019 17:53:16 +0000"  >&lt;p&gt;After discussing with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=geert.bosch&quot; class=&quot;user-hover&quot; rel=&quot;geert.bosch&quot;&gt;geert.bosch&lt;/a&gt;, I think we want to take the following approach instead:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Make all IndexBuildCoordinator threads uninterruptible. This solves the problem of ignoring interrupts by killOp or step down.&lt;/li&gt;
	&lt;li&gt;If an index build needs to be killed by a user, they will use the &lt;tt&gt;dropIndexes&lt;/tt&gt; command to abort the in-progress index build (see &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-37726&quot; title=&quot;Make dropIndexes abort in-progress index builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-37726&quot;&gt;&lt;del&gt;SERVER-37726&lt;/del&gt;&lt;/a&gt;). This will abort the index build and write the &quot;abortIndexBuild&quot; oplog entry.&lt;/li&gt;
	&lt;li&gt;We may optionally choose to implement an &lt;tt&gt;abortIndexBuild&lt;/tt&gt; command in the future, but only if we find that to be a better approach for some reason.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This work for this ticket should be to simply make all index build threads uninterruptible except at shutdown.&lt;/p&gt;</comment>
                            <comment id="2426595" author="dianna.hohensee" created="Fri, 20 Sep 2019 16:28:20 +0000"  >&lt;p&gt;For what it&apos;s worth, we have already have a &lt;tt&gt;OperationContextGroup&lt;/tt&gt; to mass modify &lt;tt&gt;OperationContexts&lt;/tt&gt;; and you could add stepUp and stepDown hooks to the &lt;tt&gt;IndexBuildsCoordinator&lt;/tt&gt; to mark OperationContexts as interruptible or impervious &amp;#8211; along with getting rid of the code block of un-interruptibility from &lt;tt&gt;IndexBuildsCoordinator&lt;/tt&gt; and replacing it with more flexible &lt;tt&gt;OperationContext&lt;/tt&gt; functions to set and unset interruptibility modes.&lt;/p&gt;</comment>
                            <comment id="2426509" author="louis.williams" created="Fri, 20 Sep 2019 15:39:19 +0000"  >&lt;p&gt;After more discussion, we have considered reverting the behavior that makes secondaries ignore interrupts. In 4.0 and before, interrupting a secondary index build crashed a node. The behavior added to 4.0 anticipated the case where a system administrator uses killop on a primary and races with stepdown. This is a hard case to justify considering the amount of work required, and it is not a correctness problem if the node crashes.&lt;/p&gt;

&lt;p&gt;Considering the interruptibility due to step-up is a little more complicated. We may still need error code whitelist to pass to _runWithoutInterruption to ignore &quot;InterruptedDueToReplStateChange&quot; in addition to &quot;InterruptedAtShutdown&quot;. If not a whitelist, we may still need to implement my first proposed solution. This is not ideal and makes understanding the interruptibility of operations more complicated based off of transient state, instead of the code as it is written.&lt;/p&gt;</comment>
                            <comment id="2415097" author="louis.williams" created="Tue, 10 Sep 2019 19:07:46 +0000"  >&lt;p&gt;I think this is going to require some interesting service arch changes. At the moment, interrupt suppression is handled by an &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b9e29cd56ebc9aca06f68eeeda7c523d3dfd6d41/src/mongo/util/interruptible.h#L101&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;IgnoreInterruptsGuard&lt;/a&gt;, which effectively sets a flag, &lt;tt&gt;_ignoreInterrupts&lt;/tt&gt;, on the OperationContext to early-return in&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/b9e29cd56ebc9aca06f68eeeda7c523d3dfd6d41/src/mongo/db/operation_context.cpp#L215-L216&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;checkForInterruptNoAssert()&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/21ca406e36dac858112259acace5859a304ae0de/src/mongo/db/index_builds_coordinator.cpp#L771&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;_buildIndex()&lt;/a&gt; function is called to actually build the index, the &lt;tt&gt;_ignoreInterrupts&lt;/tt&gt; state is no longer modified by the OperationContext, and stays that way until the function returns. This is problematic because we need a way to dynamically control whether this function is interruptible, depending on the replication state.&lt;/p&gt;

&lt;p&gt;I can think of a couple of options:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;&lt;tt&gt;checkInterruptNoAssert&lt;/tt&gt; needs to know the current replication state to decide whether interrupts should still be suppressed. This could be implemented as follows: checkForInterruptNoAssert() would check some precondition set with a new function, &lt;tt&gt;runWithoutInterruptionWhile(Callback&amp;amp;&amp;amp; cb, Predicate&amp;amp;&amp;amp; predicate)&lt;/tt&gt;. Rather than checking &lt;tt&gt;_ignoreInterrupts&lt;/tt&gt;, checkForInterruptNoAssert() would check the Predicate stored on its OperationContext to determine if the operation is interruptible (also with the exception of global shutdown). This predicate would be implemented by the IndexBuildsCoordinator as a check for the current replication state.&lt;/li&gt;
	&lt;li&gt;create onStepUp and onStepDown hooks in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/b9e29cd56ebc9aca06f68eeeda7c523d3dfd6d41/src/mongo/db/repl/replication_coordinator_external_state_impl.cpp#L429&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ReplicationCoordinatorExternalState&lt;/a&gt;. These would need to somehow locate the OperationContext building the index, and then refactor the push/&lt;a href=&quot;https://github.com/mongodb/mongo/blob/b9e29cd56ebc9aca06f68eeeda7c523d3dfd6d41/src/mongo/util/interruptible.h#L368&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;popIgnoreInterrupts&lt;/a&gt; to unset the _ignoreInterruptsState in the event of a replication state change. In terms of &quot;locating&quot; the OperationContext, this seems challenging and might require a registry of OperationContext/Client to index build mappings. To me, this is asking for concurrency bugs.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=mira.carey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;mira.carey@mongodb.com&quot;&gt;mira.carey@mongodb.com&lt;/a&gt;, do you mind giving some feedback on whether or not these ideas are realistic and could manifiest in a service arch ticket?&#160;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1120839">SERVER-45852</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="623461">SERVER-37729</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1020506">SERVER-44791</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="623458">SERVER-37726</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>13.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="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 10 Sep 2019 19:07:46 +0000</customfieldvalue>

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


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

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-253</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>false</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, 51 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>brian.lane@mongodb.com</customfieldvalue>
            <customfieldvalue>dianna.hohensee@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>mira.carey@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hupptb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hw8c7z:</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="3211">Execution Team 2019-09-23</customfieldvalue>
    <customfieldvalue id="3519">Execution Team 2020-02-10</customfieldvalue>
    <customfieldvalue id="3630">Execution Team 2020-02-24</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|hupc2n:</customfieldvalue>

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