<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:42:43 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-36309] Confirm that if and only if an FSM transaction successfully commits, that all of its writes appear in the database</title>
                <link>https://jira.mongodb.org/browse/SERVER-36309</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This was a missing piece of the concurrency testing in 4.0. We ensured that there were no transaction cycles, but not that all transactions that should have committed successfully committed. &lt;/p&gt;

&lt;p&gt;We should do this in as many workloads as makes sense.&lt;/p&gt;

&lt;p&gt;This will be especially useful in the sharding extension with KillSessions being called concurrently.&lt;/p&gt;</description>
                <environment></environment>
        <key id="576730">SERVER-36309</key>
            <summary>Confirm that if and only if an FSM transaction successfully commits, that all of its writes appear in the database</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="janna.golden@mongodb.com">Janna Golden</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                            <label>prepare_testing</label>
                    </labels>
                <created>Thu, 26 Jul 2018 18:39:56 +0000</created>
                <updated>Sun, 29 Oct 2023 22:29:30 +0000</updated>
                            <resolved>Fri, 28 Sep 2018 21:09:32 +0000</resolved>
                                                    <fixVersion>4.1.4</fixVersion>
                                    <component>Replication</component>
                    <component>Testing Infrastructure</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="2018218" author="xgen-internal-githook" created="Fri, 28 Sep 2018 21:03:34 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;jannaerin&apos;, &apos;email&apos;: &apos;golden.janna@gmail.com&apos;, &apos;username&apos;: &apos;jannaerin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36309&quot; title=&quot;Confirm that if and only if an FSM transaction successfully commits, that all of its writes appear in the database&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36309&quot;&gt;&lt;del&gt;SERVER-36309&lt;/del&gt;&lt;/a&gt; Confirm that iff a FSM txn successfully commits that all of its writes appear in the db&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/fa0e61f4042c325f5ec8903094bbe5fd2aa80c4e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/fa0e61f4042c325f5ec8903094bbe5fd2aa80c4e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2011170" author="xgen-internal-githook" created="Sat, 22 Sep 2018 04:27:00 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Max Hirschhorn&apos;, &apos;email&apos;: &apos;max.hirschhorn@mongodb.com&apos;, &apos;username&apos;: &apos;visemet&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36309&quot; title=&quot;Confirm that if and only if an FSM transaction successfully commits, that all of its writes appear in the database&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36309&quot;&gt;&lt;del&gt;SERVER-36309&lt;/del&gt;&lt;/a&gt; Confirm that iff a FSM txn successfully commits that all of its writes appear in the db&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 8bc9bcbf6e60017b4aab5a1cd4a7b674dc0a574f.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/9f54046049edc156b38bacb3d4d7d78b60ab213b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/9f54046049edc156b38bacb3d4d7d78b60ab213b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2010565" author="xgen-internal-githook" created="Fri, 21 Sep 2018 16:19:05 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;jannaerin&apos;, &apos;email&apos;: &apos;golden.janna@gmail.com&apos;, &apos;username&apos;: &apos;jannaerin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36309&quot; title=&quot;Confirm that if and only if an FSM transaction successfully commits, that all of its writes appear in the database&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36309&quot;&gt;&lt;del&gt;SERVER-36309&lt;/del&gt;&lt;/a&gt; Confirm that iff a FSM txn successfully commits that all of its writes appear in the db&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8bc9bcbf6e60017b4aab5a1cd4a7b674dc0a574f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8bc9bcbf6e60017b4aab5a1cd4a7b674dc0a574f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1967594" author="judah.schvimer" created="Mon, 6 Aug 2018 14:35:14 +0000"  >&lt;blockquote&gt;
&lt;p&gt;what about when we there&apos;s a network error due to a stepdown when the mongo shell is running the commitTransaction command? &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Retrying &lt;tt&gt;commitTransaction&lt;/tt&gt; should return success or &lt;tt&gt;TransactionCommitted&lt;/tt&gt; if it was successful, or should return &lt;tt&gt;NoSuchTransaction&lt;/tt&gt; otherwise. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I had assumed there may be other error cases that must be retried in order to ensure exactly once semantics which is why I brought up UnknownTransactionCommitResult.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;What other error cases were you thinking about? Is retrying &lt;tt&gt;commitTransaction&lt;/tt&gt; not sufficient? The full-transaction retryability problem in the concurrency framework may get in the way of the single-replica set step down suite though with &apos;prepare&apos;.&lt;/p&gt;</comment>
                            <comment id="1966087" author="max.hirschhorn@10gen.com" created="Fri, 3 Aug 2018 16:11:00 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I think that if only one client is using each Session, we are guaranteed to know the result of the transaction.&lt;/p&gt;&lt;/blockquote&gt;

&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;, I&apos;ll agree to you have the potential to learn of the definitive result of the transaction in that case; however, what about when we there&apos;s a network error due to a stepdown when the mongo shell is running the commitTransaction command? We had talked about adding a &lt;tt&gt;concurrency_replication_with_stepdowns.yml&lt;/tt&gt; test suite to be able to exercise prepareTransaction without needing sharded transactions to be fully implemented (we already have a &lt;tt&gt;concurrency_sharded_with_stepdowns.yml&lt;/tt&gt; test suite). Based on our documentation for how to handle retries for replica set transactions, I had assumed there may be other error cases that must be retried in order to ensure exactly once semantics which is why I brought up &lt;tt&gt;UnknownTransactionCommitResult&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;It sounds like we may be able to defer changing the &lt;tt&gt;withTxnAndAutoRetry()&lt;/tt&gt; function as part of this ticket but should probably note whatever changes we&apos;d need to make it in the test plan for prepareTransaction.&lt;/p&gt;</comment>
                            <comment id="1964923" author="judah.schvimer" created="Fri, 3 Aug 2018 14:26:03 +0000"  >&lt;p&gt;I think that if only one client is using each Session, we are guaranteed to know the result of the transaction.&lt;/p&gt;</comment>
                            <comment id="1964564" author="max.hirschhorn@10gen.com" created="Thu, 2 Aug 2018 23:38:41 +0000"  >&lt;blockquote&gt;
&lt;p&gt;This was a missing piece of the concurrency testing in 4.0. We ensured that there were no transaction cycles, but not that all transactions that should have committed successfully committed.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;We can achieve this in the &lt;tt&gt;multi_statement_transaction_atomicity_isolation.js&lt;/tt&gt; FSM workload (and thus all the workloads which derive from it) by having each worker thread scribble down in their &lt;tt&gt;$config.data&lt;/tt&gt; the &lt;tt&gt;docIds&lt;/tt&gt; which were updated as part of the transaction.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// Property keys are the .toString() form of the transaction numbers, values are list of documents&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// by their _id which were updated.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    &quot;NumberLong(0)&quot;: [0, 1, 2],&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    // Transaction #1 was aborted for this thread and is therefore omitted.&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    &quot;NumberLong(1)&quot;: [0, 2, 3],&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;    ...&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;}&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;1. Use the &lt;tt&gt;DriverSession#getTxnNumber_forTesting()&lt;/tt&gt; method which was added as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36372&quot; title=&quot;Add a testing-only function to DriverSession to get the current transaction number&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36372&quot;&gt;&lt;del&gt;SERVER-36372&lt;/del&gt;&lt;/a&gt; to get the transaction number and record it in the &lt;tt&gt;metadata&lt;/tt&gt; property along with the database and collection name.&lt;/p&gt;

&lt;p&gt;2. Change the &lt;tt&gt;checkConsistency()&lt;/tt&gt; state function to assert that the following properties hold on the &lt;tt&gt;documents&lt;/tt&gt; array:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;For every transaction number present in the data that was scribbled into &lt;tt&gt;$config.data&lt;/tt&gt;, only the documents matching the _id&apos;s in the associated array have an entry for that combination of &lt;tt&gt;this.tid&lt;/tt&gt; and &lt;tt&gt;txnNumber&lt;/tt&gt;.&lt;/li&gt;
	&lt;li&gt;For every transaction number not present in the data that was scribbled into &lt;tt&gt;$config.data&lt;/tt&gt;, none of the documents in &lt;tt&gt;documents&lt;/tt&gt; have an entry for that combination of &lt;tt&gt;this.tid&lt;/tt&gt; and &lt;tt&gt;txnNumber&lt;/tt&gt;.&lt;/li&gt;
&lt;/ul&gt;


&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;, could you review &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.1/jstests/concurrency/fsm_workload_helpers/auto_retry_transaction.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the &lt;tt&gt;withTxnAndAutoRetry()&lt;/tt&gt; function&lt;/a&gt; to verify whether it is guaranteed to learn the definite result for whether the transaction committed or not? I&apos;m concerned that because the implementation doesn&apos;t separately retry on a &lt;tt&gt;UnknownTransactionCommitResult&lt;/tt&gt; error response, it is possible for the transaction to have committed and for the client to not realize it. I believe that without addressing this, asserting that the second property holds isn&apos;t feasible.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 2 Aug 2018 23:38:41 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 19 weeks, 5 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1032</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>
                            5 years, 19 weeks, 5 days 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>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>janna.golden@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>max.hirschhorn@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu3ipr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htv9fb:</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="2482">Sharding 2018-09-24</customfieldvalue>
    <customfieldvalue id="2538">Sharding 2018-10-08</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|hu34z3:</customfieldvalue>

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