<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:24:18 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-30577] Clear list of stable timestamp candidates on Rollback and Initial Sync</title>
                <link>https://jira.mongodb.org/browse/SERVER-30577</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The list of potential stable timestamp candidates is maintained in memory, in &lt;br/&gt;
 &lt;tt&gt;ReplicationCoordinatorImpl::_stableTimestampCandidates&lt;/tt&gt;. It will need to be cleared after recovering to a timestamp or when starting a new initial sync. During rollback, after recovering to the stable timestamp, the replication system will apply oplog entries between the stable timestamp and the common point. Before this oplog application process, we should clear the list of all timestamps except the stable timestamp. The oplog entries between the stable timestamp and the common point may get applied differently than they were originally, so we need to clear the timestamp list before doing this to avoid leaving timestamp candidates in the list that might no longer fall at a consistent point.  &lt;/p&gt;

&lt;h5&gt;&lt;a name=&quot;Noteonthe%27rollbackViaRefetch%27algorithmin3.6%3A&quot;&gt;&lt;/a&gt;Note on the &apos;rollbackViaRefetch&apos; algorithm in 3.6:&lt;/h5&gt;

&lt;p&gt;For 3.6, where we still use the &quot;rollbackBackViaRefetch&quot; algorithm, we will need to do the following to make sure we are never setting the stable timestamp to a timestamp at an inconsistent state:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Upon entering ROLLBACK, set a flag, &lt;tt&gt;dataConsistent=false&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;Upon reaching minValid, in &lt;tt&gt;tryToGoLiveAsASecondary&lt;/tt&gt; in &lt;tt&gt;sync_tail.cpp&lt;/tt&gt;, set &lt;tt&gt;dataConsistent=true&lt;/tt&gt;, since reaching the minValid optime implies that the database state is now consistent.&lt;/li&gt;
	&lt;li&gt;We should never add an optime to the set of stable optime candidates in ReplicationCoordinator if &lt;tt&gt;dataConsistent=false&lt;/tt&gt;&lt;/li&gt;
	&lt;li&gt;Upon leaving ROLLBACK, clear the list of stable optime candidates that are past the current stable optime.&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="414627">SERVER-30577</key>
            <summary>Clear list of stable timestamp candidates on Rollback and Initial Sync</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="william.schultz@mongodb.com">William Schultz</assignee>
                                    <reporter username="william.schultz@mongodb.com">William Schultz</reporter>
                        <labels>
                            <label>bkp</label>
                    </labels>
                <created>Wed, 9 Aug 2017 18:44:44 +0000</created>
                <updated>Mon, 30 Oct 2023 23:14:29 +0000</updated>
                            <resolved>Tue, 21 Nov 2017 21:05:44 +0000</resolved>
                                                    <fixVersion>3.6.0-rc5</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="1732215" author="xgen-internal-githook" created="Tue, 21 Nov 2017 21:28:14 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;username&apos;: &apos;will62794&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30577&quot; title=&quot;Clear list of stable timestamp candidates on Rollback and Initial Sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30577&quot;&gt;&lt;del&gt;SERVER-30577&lt;/del&gt;&lt;/a&gt; Don&apos;t update the stable timestamp if database is in an inconsistent state&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 30de2f7c46a9aa0914fe91cba2075b244e9b516b)&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3867aecb8eb2a0d8c4835f9adf3e76c83e607a10&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3867aecb8eb2a0d8c4835f9adf3e76c83e607a10&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1732174" author="xgen-internal-githook" created="Tue, 21 Nov 2017 21:03:55 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;username&apos;: &apos;will62794&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30577&quot; title=&quot;Clear list of stable timestamp candidates on Rollback and Initial Sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30577&quot;&gt;&lt;del&gt;SERVER-30577&lt;/del&gt;&lt;/a&gt; Don&apos;t update the stable timestamp if database is in an inconsistent state&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/30de2f7c46a9aa0914fe91cba2075b244e9b516b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/30de2f7c46a9aa0914fe91cba2075b244e9b516b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1722176" author="milkie" created="Thu, 9 Nov 2017 23:32:24 +0000"  >&lt;p&gt;Thanks for that analysis; I&#8217;m now confident that your proposal is comprehensive. &lt;/p&gt;</comment>
                            <comment id="1722157" author="william.schultz" created="Thu, 9 Nov 2017 22:58:54 +0000"  >&lt;p&gt;That is what I was thinking about, but I don&apos;t think there are. The following are the states where our data might be inconsistent:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;RECOVERING after a rollback&lt;/li&gt;
	&lt;li&gt;Recovery following an unclean shutdown&lt;/li&gt;
	&lt;li&gt;Initial sync&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;RECOVERING after rollback seems like the only place where we might be updating our applied optimes and therefore updating the stable timestamp while in an inconsistent state. It seems that recovery after shutdown doesn&apos;t set the applied optime until finishes &lt;a href=&quot;https://github.com/mongodb/mongo/blob/68035d80f3b382e591fa381ee44550d920a6d432/src/mongo/db/repl/replication_coordinator_impl.cpp#L497&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;recovering from the oplog&lt;/a&gt;, and initial sync is handled specially by the way we call the &lt;tt&gt;StorageInterface::setInitialDataTimestamp&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/51ebfe7bb870a1665653ad8088b121706ce3d5b5/src/mongo/db/repl/initial_syncer.cpp#L358&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;method&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I think that if we check the condition &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;memberState==RECOVERING &amp;amp;&amp;amp; getMaintenanceMode()==&lt;/span&gt;&lt;span style=&quot;color: #006699; font-weight: bold; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt; that will be a sufficient (albeit not elegant) way to check if we should avoid updating the stable timestamp in &lt;tt&gt;ReplicationCoordinatorImpl::setMyLastAppliedOpTime&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-5839&quot; title=&quot;Create different replica set states for each current use of RECOVERING&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-5839&quot;&gt;&lt;del&gt;SERVER-5839&lt;/del&gt;&lt;/a&gt; seems to describe the different usages of RECOVERING state. It may be out of date but it seems pretty accurate.&lt;/p&gt;

</comment>
                            <comment id="1722137" author="milkie" created="Thu, 9 Nov 2017 22:44:45 +0000"  >&lt;p&gt;That sounds okay to me. Are there other RECOVERING states where the data is not consistent?&lt;/p&gt;</comment>
                            <comment id="1722118" author="william.schultz" created="Thu, 9 Nov 2017 22:28:05 +0000"  >&lt;p&gt;So, for 3.6, I think there are two things we need to do:&lt;/p&gt;

&lt;p&gt;1. Upon leaving ROLLBACK state, clear the list of stable optime candidates so that there are no optimes in the set that would have been rolled back (they are optimes that no longer represent valid states for this node, since we rolled back the ops).&lt;br/&gt;
2. When in RECOVERING state, following a ROLLBACK, refrain from updating the stable timestamp or its candidate set until we reach minValid and transition to SECONDARY.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt; Does this seem sufficient?&lt;/p&gt;</comment>
                            <comment id="1720952" author="xgen-internal-githook" created="Wed, 8 Nov 2017 21:48:53 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;username&apos;: &apos;will62794&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30577&quot; title=&quot;Clear list of stable timestamp candidates on Rollback and Initial Sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30577&quot;&gt;&lt;del&gt;SERVER-30577&lt;/del&gt;&lt;/a&gt; Clear stable timestamp candidates after rollback&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 68035d80f3b382e591fa381ee44550d920a6d432.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d50bc192b3c91b1788c2e7932ba8bffb7e506d1a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d50bc192b3c91b1788c2e7932ba8bffb7e506d1a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1720924" author="milkie" created="Wed, 8 Nov 2017 21:26:32 +0000"  >&lt;p&gt;Yes, we&apos;ll need to be careful, as we use stable timestamps to set read concern majority values as well as setting oldest_timestamp.  The timestamps should only be for point-in-time values where all the data will be consistent. &lt;br/&gt;
Therefore, we shouldn&apos;t make any new stable timestamp candidates while a node is in state RECOVERING.  However, this will be problematic if someone uses maintenance mode to set the state.  We actually need a new state that says &quot;data is inconsistent&quot;, rather than just RECOVERING which handles both consistent and inconsistent states.&lt;/p&gt;</comment>
                            <comment id="1720891" author="william.schultz" created="Wed, 8 Nov 2017 21:09:04 +0000"  >&lt;p&gt;I am wondering if we need to be careful about setting the stable timestamp to a timestamp where the database state is inconsistent in 3.6. The one scenario I am thinking about is after rollback (via refetch), when we enter RECOVERING mode, and apply operations from the sync source until we reach minValid. There is nothing preventing us from setting our applied optime forward during this phase (even though we disallow external reads), so we could be adding optime candidates to our set and potentially setting the stable timestamp to one of these (inconsistent) optimes, during the RECOVERING phase. Maybe, during this phase, we need to disallow checkpoints or somehow refrain from updating the stable timestamp. I am not sure if this would actually be a real problem, depending on how the stable timestamp is being used in the storage layer in 3.6.&lt;/p&gt;</comment>
                            <comment id="1720886" author="xgen-internal-githook" created="Wed, 8 Nov 2017 21:05:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;William Schultz&apos;, &apos;username&apos;: &apos;will62794&apos;, &apos;email&apos;: &apos;william.schultz@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30577&quot; title=&quot;Clear list of stable timestamp candidates on Rollback and Initial Sync&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30577&quot;&gt;&lt;del&gt;SERVER-30577&lt;/del&gt;&lt;/a&gt; Clear stable timestamp candidates after rollback&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/68035d80f3b382e591fa381ee44550d920a6d432&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/68035d80f3b382e591fa381ee44550d920a6d432&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1719394" author="william.schultz" created="Tue, 7 Nov 2017 16:31:14 +0000"  >&lt;p&gt;Clearing the stable optime candidate list on initial sync attempts seems to have been addressed by Eric&apos;s work. It can be seen in the &lt;tt&gt;ReplicationCoordinatorImpl::resetMyLastOpTimes&lt;/tt&gt; &lt;a href=&quot;https://github.com/mongodb/mongo/blob/3f51dc0165f5af762616185e4c219e89b886ccb4/src/mongo/db/repl/replication_coordinator_impl.cpp#L1078&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;function&lt;/a&gt;, which is &lt;a href=&quot;https://github.com/mongodb/mongo/blob/51ebfe7bb870a1665653ad8088b121706ce3d5b5/src/mongo/db/repl/initial_syncer.cpp#L430&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;called on a new initial sync attempt&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="1682187" author="spencer" created="Tue, 26 Sep 2017 16:57:21 +0000"  >&lt;p&gt;This is likely to fall out of work that &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt; is doing already&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="468757">SERVER-32185</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="398977">SERVER-29891</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1333345">SERVER-47844</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="461420">SERVER-32041</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>12.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15141"><![CDATA[v3.6]]></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>Tue, 26 Sep 2017 16:57:21 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 12 weeks, 1 day 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_14262" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 26 Sep 2017 00:00:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-842</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>
                            6 years, 12 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>spencer@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|htcoef:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht3v47:</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="1931">Repl 2017-11-13</customfieldvalue>
    <customfieldvalue id="1957">Repl 2017-12-04</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 9 Aug 2017 00:00:00 +0000</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|htcah3:</customfieldvalue>

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