<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:58:37 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-41769] The committedSnapshot should not be greater than allCommitted when EMRC=false</title>
                <link>https://jira.mongodb.org/browse/SERVER-41769</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently we start a &lt;a href=&quot;https://github.com/mongodb/mongo/blob/dc9a28bff8ee8e20f764839f52172c458b24dbac/jstests/core/txns/repeatable_reads_in_transaction.js#L41&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;transaction&lt;/a&gt; that performs modifications to documents with snapshot read concern.&lt;/p&gt;

&lt;p&gt;With snapshot read concern, we set the readSource to be the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/dc9a28bff8ee8e20f764839f52172c458b24dbac/src/mongo/db/transaction_participant.cpp#L597-L602&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;kAllCommittedSnapshot&lt;/a&gt;. This can cause build failures in the case where in our evergreen runs, an HMAC key insertion right before we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/dc9a28bff8ee8e20f764839f52172c458b24dbac/jstests/core/txns/repeatable_reads_in_transaction.js#L26-L28&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;prepopulate&lt;/a&gt; our test collection. In this case, since we prepopulate the collection while the WT transaction for the HMAC key insertion is not yet committed, the documents we insert into the test collection never make it into the all committed snapshot. This will cause inconsistencies in our test results. We should pin the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/bf4f91a6087227295007535bf143a8dd20e6a6d5/src/mongo/db/repl/replication_coordinator_impl.h#L1459&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;committedSnapshot&lt;/a&gt; to always be &amp;lt;= allCommitted and also audit all uses of transactions with snapshot read concern to make sure any previous writes outside the transaction that are depended on by the transaction should be using majority write concern.&lt;/p&gt;</description>
                <environment></environment>
        <key id="803668">SERVER-41769</key>
            <summary>The committedSnapshot should not be greater than allCommitted when EMRC=false</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="jason.chan@mongodb.com">Jason Chan</assignee>
                                    <reporter username="jason.chan@mongodb.com">Jason Chan</reporter>
                        <labels>
                    </labels>
                <created>Fri, 14 Jun 2019 20:36:59 +0000</created>
                <updated>Sun, 29 Oct 2023 22:19:51 +0000</updated>
                            <resolved>Tue, 16 Jul 2019 21:49:35 +0000</resolved>
                                    <version>4.3.1</version>
                                    <fixVersion>4.2.0-rc3</fixVersion>
                    <fixVersion>4.3.1</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2330780" author="xgen-internal-githook" created="Wed, 17 Jul 2019 17:55:51 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Chan&apos;, &apos;username&apos;: &apos;jasonjhchan&apos;, &apos;email&apos;: &apos;jason.chan@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41769&quot; title=&quot;The committedSnapshot should not be greater than allCommitted when EMRC=false&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41769&quot;&gt;&lt;del&gt;SERVER-41769&lt;/del&gt;&lt;/a&gt; audit uses of write concern majority before transactions with snapshot read concern&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 5d376f806460dee5a121483e33c0eeeb8c3791d7)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/eba3ad3f7263ff98293f312403e373ebc9311939&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/eba3ad3f7263ff98293f312403e373ebc9311939&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2330777" author="xgen-internal-githook" created="Wed, 17 Jul 2019 17:54:56 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Chan&apos;, &apos;email&apos;: &apos;jason.chan@10gen.com&apos;, &apos;username&apos;: &apos;jasonjhchan&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41769&quot; title=&quot;The committedSnapshot should not be greater than allCommitted when EMRC=false&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41769&quot;&gt;&lt;del&gt;SERVER-41769&lt;/del&gt;&lt;/a&gt; Pin _currentCommittedSnapshot to be &amp;lt;= the allCommitted timestamp when EMRC=false&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 795b99ef36ea9448c862db6fd56ff6321bf66c9e)&lt;br/&gt;
Branch: v4.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f659c78d8d07a69a6b935a75af47722dc780bcb9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f659c78d8d07a69a6b935a75af47722dc780bcb9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2329618" author="xgen-internal-githook" created="Tue, 16 Jul 2019 21:49:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Chan&apos;, &apos;username&apos;: &apos;jasonjhchan&apos;, &apos;email&apos;: &apos;jason.chan@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41769&quot; title=&quot;The committedSnapshot should not be greater than allCommitted when EMRC=false&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41769&quot;&gt;&lt;del&gt;SERVER-41769&lt;/del&gt;&lt;/a&gt; audit uses of write concern majority before transactions with snapshot read concern&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5d376f806460dee5a121483e33c0eeeb8c3791d7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5d376f806460dee5a121483e33c0eeeb8c3791d7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2329251" author="xgen-internal-githook" created="Tue, 16 Jul 2019 18:15:20 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jason Chan&apos;, &apos;username&apos;: &apos;jasonjhchan&apos;, &apos;email&apos;: &apos;jason.chan@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41769&quot; title=&quot;The committedSnapshot should not be greater than allCommitted when EMRC=false&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41769&quot;&gt;&lt;del&gt;SERVER-41769&lt;/del&gt;&lt;/a&gt; Pin _currentCommittedSnapshot to be &amp;lt;= the allCommitted timestamp when EMRC=false&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/795b99ef36ea9448c862db6fd56ff6321bf66c9e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/795b99ef36ea9448c862db6fd56ff6321bf66c9e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2301731" author="jason.chan" created="Thu, 27 Jun 2019 21:45:18 +0000"  >&lt;p&gt;Yes, I&apos;ve changed the ticket title and description. I will audit the usages of transactions with snapshot read concern to make sure any writes that are depended on by the transaction will be using majority write concern.&lt;/p&gt;</comment>
                            <comment id="2301709" author="judah.schvimer" created="Thu, 27 Jun 2019 21:40:32 +0000"  >&lt;p&gt;That makes sense. Should we also check that we are using w:majority everywhere we need to be?&lt;/p&gt;</comment>
                            <comment id="2301696" author="jason.chan" created="Thu, 27 Jun 2019 21:33:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;&lt;br/&gt;
I think &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;&apos;s suggestion to pin the committed snapshot to be &amp;lt;= allCommitted when EMRC=false makes the most sense. This will fix the difference in behaviors between single-node and multi-node replica sets when EMRC false and using snapshot read concern. This will also fix any currently flakey tests and make true the assumption that transactions should always be able to read previously majority committed writes.  &lt;/p&gt;

&lt;p&gt;Some alternative solutions that I didn&apos;t think were as good:&lt;br/&gt;
1. We currently have a &lt;tt&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;uses_snapshot_read_concern&amp;#93;&lt;/span&gt;&lt;/tt&gt; jstest tag that we can blacklist from the enable majority read concern false build variants. However, this doesn&apos;t fix the difference in behaviors of single-node vs. multiple-node replica sets when EMRC=false.&lt;br/&gt;
2. We can ban EMRC=false entirely from single-node replica sets but this is a larger change that seems a bit much for a bug that we think will affect a very small portion of our customers.&lt;/p&gt;</comment>
                            <comment id="2301494" author="judah.schvimer" created="Thu, 27 Jun 2019 21:14:20 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jason.chan&quot; class=&quot;user-hover&quot; rel=&quot;jason.chan&quot;&gt;jason.chan&lt;/a&gt;, what do you propose to do to fix this ticket?&lt;/p&gt;</comment>
                            <comment id="2301292" author="jason.chan" created="Thu, 27 Jun 2019 19:54:00 +0000"  >&lt;p&gt;I created a quick repro of the bug &lt;a href=&quot;https://gist.github.com/jasonjhchan/336a402e6c00319ce09eb16294e60346&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; (should only be run when enableMajorityReadConcern is false). The issue seems to be as described. We set the committed snapshot to be the lastCommittedOpTime. The lastCommittedOpTime gets set to the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/47b380f03e8898f4706ff01fa2be64dfb72e0dba/src/mongo/db/repl/topology_coordinator.cpp#L2450-L2452&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;durableOpTime&lt;/a&gt; which ends up being the same as the lastApplied. This allows the insert with majority write concern to complete successfully but the transaction will continue to read at the allCommittedTimestamp with snapshot read concern.&lt;/p&gt;</comment>
                            <comment id="2300801" author="william.schultz" created="Thu, 27 Jun 2019 15:45:24 +0000"  >&lt;p&gt;Yes, forcing all tests that want RYOW behavior to contain their ops within a single session might be additionally tricky to enforce across our base of tests.&lt;/p&gt;</comment>
                            <comment id="2300783" author="judah.schvimer" created="Thu, 27 Jun 2019 15:41:30 +0000"  >&lt;p&gt;Causal consistency would not be sufficient since many tests expect sessions to read writes done outside of their session. Causal is a session property. &lt;/p&gt;</comment>
                            <comment id="2300756" author="william.schultz" created="Thu, 27 Jun 2019 15:26:22 +0000"  >&lt;p&gt;Also, to Judah&apos;s above point, using causal consistency in our tests certainly would be a valid alternative to guarantee read-your-writes behavior for transactions, but we feared that this would be harder for people to remember when writing new tests. Arguably, any test that truly wants read-your-writes behavior should be using causal consistency, but we don&apos;t strictly adhere to that in practice.&lt;/p&gt;</comment>
                            <comment id="2300750" author="william.schultz" created="Thu, 27 Jun 2019 15:21:58 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jason.chan&quot; class=&quot;user-hover&quot; rel=&quot;jason.chan&quot;&gt;jason.chan&lt;/a&gt; is going to investigate this a bit more to come up with a concrete repro of the theory above, but after talking with him a bit more we came to a few conclusions on this issue:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;If the above theory is correct, there is a behavioral divergence between 1 node replica sets and multi-node replica sets when EMRC=false, which is that w:majority writes may not be visible to subsequent &quot;snapshot&quot; read concern transactions. I am not convinced we should be very worried about this divergence from a user perspective since I presume that the number of real world deployments using transactions on 1 node replica sets with EMRC=false is quite small.&lt;/li&gt;
	&lt;li&gt;Even if we are not worried about this behavior from a user perspective, it may be worth doing something about it for the sake of our test infrastructure. We predict that the inability to read previous majority committed writes in a transaction could cause confusion and more flaky test failures in the future. If, in the server, we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/5a6569e821418212e8b959e4473ea81b3c231d9f/src/mongo/db/repl/replication_coordinator_impl.cpp#L3582&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;constrain the committed snapshot&lt;/a&gt; to be &amp;lt;= allCommitted when EMRC=false, that should create behavioral parity between 1 and multi-node replica sets when EMRC=false.&lt;/li&gt;
	&lt;li&gt;As Jason and I talked about this issue, we recalled that we only care about providing the EMRC=false option when a replica set can contain an arbiter, for the reasons outlined in PM-1191. A 1 node replica set can never have an arbiter, and so we raised the possibility of banning EMRC=false entirely on 1 node replica sets. This would be a more significant change, but is another alternative we considered.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="2295384" author="william.schultz" created="Mon, 24 Jun 2019 18:17:34 +0000"  >&lt;p&gt;There may be an issue here that is specific to enableMajorityReadConcern=false. When EMRC=false, we &lt;a href=&quot;https://github.com/mongodb/mongo/blob/47b380f03e8898f4706ff01fa2be64dfb72e0dba/src/mongo/db/repl/replication_coordinator_impl.cpp#L3579-L3590&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;set the committed snapshot&lt;/a&gt; to the lastCommittedOpTime, instead of the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/47b380f03e8898f4706ff01fa2be64dfb72e0dba/src/mongo/db/repl/replication_coordinator_impl.cpp#L3573&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;stable timestamp&lt;/a&gt;. This would mean that, on 1 node replica sets, it is not &lt;a href=&quot;https://github.com/mongodb/mongo/blob/47b380f03e8898f4706ff01fa2be64dfb72e0dba/src/mongo/db/repl/replication_coordinator_impl.cpp#L3463-L3464&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;restricted to being behind the allCommitted&lt;/a&gt;, and so if we advance the commit point immediately to lastApplied on 1 node replica sets, then a w:majority write would not wait for the allCommitted to move beyond the optime of the write. With EMRC=true, though, if the committed snapshot is restrained to be behind the allCommitted, then waiting for majority write concern would also wait for the allCommitted to reach the optime of the write. Presumably we could write a simple test to demonstrate this behavior. If that is the case, then we may care more about making the semantics of transactions consistent between both settings of the enableMajorityReadConcern parameter.&lt;/p&gt;</comment>
                            <comment id="2292744" author="judah.schvimer" created="Fri, 21 Jun 2019 13:16:21 +0000"  >&lt;p&gt;We currently have a bit of a problem that our transaction testing of different read concerns is fairly arbitrary. I don&apos;t want to accidentally lose snapshot read concern coverage by removing all occurrences of it. Using causal consistency on the given session is a more canonical way of getting read your writes.&lt;/p&gt;</comment>
                            <comment id="2292092" author="jason.chan" created="Thu, 20 Jun 2019 21:18:41 +0000"  >&lt;p&gt;The same issue happened in BF-13486 with a different jstest. We should look into a solution to the general problem rather than fixing these tests on a case-by-case basis. &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="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="856083">SERVER-42225</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16775"><![CDATA[v4.2]]></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, 21 Jun 2019 13:16:21 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 30 weeks 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>
                            4 years, 30 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>20.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>jason.chan@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@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|hv5csf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|huui6n:</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="3001">Repl 2019-07-01</customfieldvalue>
    <customfieldvalue id="3026">Repl 2019-07-15</customfieldvalue>
    <customfieldvalue id="3028">Repl 2019-07-29</customfieldvalue>

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

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

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