<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:52:13 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-39489] Clarify optime creation in TransactionParticipant</title>
                <link>https://jira.mongodb.org/browse/SERVER-39489</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;There is a line &lt;a href=&quot;https://github.com/mongodb/mongo/blob/0252c9ee56371663b05e707d69bceaf29de6645f/src/mongo/db/transaction_participant.cpp#L501-L502&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here that is no longer 100% true&lt;/a&gt;:&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: #008200; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// Transactions do not survive term changes, so combining &quot;getTerm&quot; here with the&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: #008200; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;// recovery unit timestamp does not cause races.&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;_speculativeTransactionReadOpTime = {readTimestamp, replCoord-&amp;gt;getTerm()};&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;This is no longer true for prepared transactions since they can survive term changes. I expect this is still safe since prepared transactions will do a write and not wait on the &lt;tt&gt;_speculativeTransactionReadOpTime&lt;/tt&gt; but this should be double checked, and commented as such.&lt;/p&gt;

&lt;p&gt;&quot;OpTime creation&quot; in the transaction participant is done &lt;a href=&quot;https://github.com/mongodb/mongo/blob/0252c9ee56371663b05e707d69bceaf29de6645f/src/mongo/db/transaction_participant.cpp#L517&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt; as well, very similarly.&lt;/p&gt;</description>
                <environment></environment>
        <key id="687448">SERVER-39489</key>
            <summary>Clarify optime creation in TransactionParticipant</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="judah.schvimer@mongodb.com">Judah Schvimer</assignee>
                                    <reporter username="judah.schvimer@mongodb.com">Judah Schvimer</reporter>
                        <labels>
                            <label>prepare_durability</label>
                    </labels>
                <created>Mon, 11 Feb 2019 14:43:15 +0000</created>
                <updated>Sun, 29 Oct 2023 22:24:13 +0000</updated>
                            <resolved>Thu, 23 May 2019 03:16:58 +0000</resolved>
                                                    <fixVersion>4.1.12</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2257362" author="xgen-internal-githook" created="Thu, 23 May 2019 03:15:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Judah Schvimer&apos;, &apos;email&apos;: &apos;judah@mongodb.com&apos;, &apos;username&apos;: &apos;judahschvimer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39489&quot; title=&quot;Clarify optime creation in TransactionParticipant&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39489&quot;&gt;&lt;del&gt;SERVER-39489&lt;/del&gt;&lt;/a&gt; Remove optime creation in TransactionParticipant&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/e0f66bf6d4aefe9e104453716aff5f47a42931e4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/e0f66bf6d4aefe9e104453716aff5f47a42931e4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2248182" author="esha.maharishi@10gen.com" created="Wed, 15 May 2019 22:16:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;, I didn&apos;t read all the above comments, but we are not planning to do that optimization before 4.2. I created a ticket for it (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-41165&quot; title=&quot;Transaction participants don&amp;#39;t need to do a noop write before committing a read-only transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-41165&quot;&gt;SERVER-41165&lt;/a&gt;) and marked it as related to this ticket so it&apos;s easier to follow this paper trail if or when we do do it.&lt;/p&gt;</comment>
                            <comment id="2248160" author="judah.schvimer" created="Wed, 15 May 2019 22:00:03 +0000"  >&lt;p&gt;Given that it&apos;s safe as &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.russotto&quot; class=&quot;user-hover&quot; rel=&quot;matthew.russotto&quot;&gt;matthew.russotto&lt;/a&gt; explained, I&apos;ll just improve the comment and maybe clean up the code a bit to keep the optimization easy.&lt;/p&gt;</comment>
                            <comment id="2248137" author="tess.avitabile" created="Wed, 15 May 2019 21:47:05 +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;, I agree that we can remove &lt;tt&gt;speculativeTransactionReadOptime&lt;/tt&gt; completely, since we do a noop write for all read-only transactions, including transactions with readConcern level &lt;tt&gt;snapshot&lt;/tt&gt;. My only concern is whether &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=esha.maharishi&quot; class=&quot;user-hover&quot; rel=&quot;esha.maharishi&quot;&gt;esha.maharishi&lt;/a&gt; planned to make an optimization to remove the noop write for read-only transactions with readConcern level &lt;tt&gt;snapshot&lt;/tt&gt; before 4.2.&lt;/p&gt;</comment>
                            <comment id="2248025" author="judah.schvimer" created="Wed, 15 May 2019 20:42:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.russotto&quot; class=&quot;user-hover&quot; rel=&quot;matthew.russotto&quot;&gt;matthew.russotto&lt;/a&gt;,&#160;Thanks! I agree. That said, do you agree that this is dead code now that we write noops for read-only transactions?&lt;/p&gt;</comment>
                            <comment id="2248004" author="matthew.russotto" created="Wed, 15 May 2019 20:29:36 +0000"  >&lt;p&gt;That particular comment is only saying that the _speculativeTransactionReadOpTime is coherent; that is, that the term didn&apos;t change between the time we determined the read timestamp (with preallocateSnapshot() ) and the time we called getTerm().&#160; At the time the fact that the term didn&apos;t change during a transaction was the only guarantee, but we have a stronger guarantee of that now: This method is called with the global and RSTL lock held, so term cannot change.&lt;/p&gt;</comment>
                            <comment id="2247794" author="judah.schvimer" created="Wed, 15 May 2019 18:23:58 +0000"  >&lt;p&gt;OpTime creation first began in 4.0 in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34038&quot; title=&quot;Make sure that commitTransaction waits for writeConcern after a read-only transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34038&quot;&gt;&lt;del&gt;SERVER-34038&lt;/del&gt;&lt;/a&gt; for the &lt;tt&gt;speculativeTransactionReadOpTime&lt;/tt&gt;. It was added to wait for write concern on the read timestamp of a read-only transaction (for read concerns majority and snapshot). This made sure that no data read would be rolled back in speculative majority and speculative snapshot transactions that committed with w:majority. If the transaction did a write it would wait on the timestamp of that write as part of waiting for write concern, but if the transaction was read-only it would only wait for write concern on the previous OpTime on the client, which could be stale or null.&lt;/p&gt;

&lt;p&gt;In 4.0, the comment associated with the OpTime creation was true &#8220;Transactions do not survive term changes, so combining &quot;getTerm&quot; here with the recovery unit timestamp does not cause races.&#8221;. This is no longer true due to prepared transactions surviving term changes.&lt;/p&gt;

&lt;p&gt;The next evolution in 4.0 was in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34880&quot; title=&quot;Make readConcern:local wait for write concern on a read-only transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34880&quot;&gt;&lt;del&gt;SERVER-34880&lt;/del&gt;&lt;/a&gt; to make read concern local transactions also wait for write concern on read-only transactions. This was just to make local and majority read concern transactions behave identically since the default read concern in 4.0 was local even though we wanted transactions to default to speculative majority.&lt;/p&gt;

&lt;p&gt;At the beginning of 4.2, we found a bug fixed in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35821&quot; title=&quot;readConcern:snapshot transactions need a read timestamp &amp;lt;= WT&amp;#39;s all_committed point&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35821&quot;&gt;&lt;del&gt;SERVER-35821&lt;/del&gt;&lt;/a&gt;. Read concern snapshot transactions were reading ahead of the &lt;tt&gt;all_committed&lt;/tt&gt; timestamp. This introduced the first divergence between read concern local/majority and snapshot transactions. Snapshot transactions now read at the &lt;tt&gt;all_committed&lt;/tt&gt; timestamp and local and majority transactions read at &lt;tt&gt;lastApplied&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;This code evolved in 4.2 with &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38850&quot; title=&quot;Perform noop write before returning NoSuchTransaction error&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38850&quot;&gt;&lt;del&gt;SERVER-38850&lt;/del&gt;&lt;/a&gt;. Somewhat unrelatedly, we began performing noop writes when returning &lt;tt&gt;NoSuchTransaction&lt;/tt&gt; errors to make sure &lt;tt&gt;TransientTransactionError&lt;/tt&gt; labels on retried &lt;tt&gt;commitTransaction&lt;/tt&gt; commands ensure a transaction definitively did not commit.&lt;/p&gt;

&lt;p&gt;These noop writes became related, however, in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38906&quot; title=&quot;Multi-document transactions should not perform timestamped read ahead of all-committed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38906&quot;&gt;&lt;del&gt;SERVER-38906&lt;/del&gt;&lt;/a&gt;. The goal of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38906&quot; title=&quot;Multi-document transactions should not perform timestamped read ahead of all-committed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38906&quot;&gt;&lt;del&gt;SERVER-38906&lt;/del&gt;&lt;/a&gt; was to not do timestamped reads ahead of the &lt;tt&gt;all_committed&lt;/tt&gt; timestamp. This built on top of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-35821&quot; title=&quot;readConcern:snapshot transactions need a read timestamp &amp;lt;= WT&amp;#39;s all_committed point&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-35821&quot;&gt;&lt;del&gt;SERVER-35821&lt;/del&gt;&lt;/a&gt;. Rather than local/majority reading at &lt;tt&gt;lastApplied&lt;/tt&gt; they began reading with no timestamp. This begged the question, how should read-only local/majority read concern transactions wait for the data they read to be majority committed. (There is an argument to be made that local read concern transactions need not wait for the data they read to be majority committed, and do not need to advance their write concern if they do no writes. &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38906&quot; title=&quot;Multi-document transactions should not perform timestamped read ahead of all-committed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38906&quot;&gt;&lt;del&gt;SERVER-38906&lt;/del&gt;&lt;/a&gt; decided to maintain current behavior that read concern local and majority transactions in a single replica set have identical behavior.) Calling &lt;tt&gt;setLastOpToSystemLastOpTime&lt;/tt&gt; was not an option due to &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39364&quot; title=&quot;Audit uses of setLastOpToSystemLastOpTime&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39364&quot;&gt;&lt;del&gt;SERVER-39364&lt;/del&gt;&lt;/a&gt;, so we chose to do a noop write instead and wait for write concern on the timestamp of that noop write. At this point, we began only setting a &lt;tt&gt;speculativeTransactionReadOpTime&lt;/tt&gt; for read concern snapshot transactions. Read concern local and majority transactions used the noop writes&#8217; OpTimes to wait for the data read in read-only transactions to be majority committed. The noop write, however, was not limited to local and majority transactions. Since read-only transactions always do a noop write, the transaction will always either wait for write concern on the transaction&#8217;s noop write for read-only transactions, or a write in the transaction if it wasn&#8217;t read-only. They will never wait on the &lt;tt&gt;speculativeTransactionReadOpTime&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;As a result, it should be safe to remove the &lt;tt&gt;speculativeTransactionReadOptime&lt;/tt&gt; completely. We currently use it for logging, but the read timestamp goes in the &lt;tt&gt;SingleTransactionStats&lt;/tt&gt; as well, which is the proper place for that information. The testing added in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-38906&quot; title=&quot;Multi-document transactions should not perform timestamped read ahead of all-committed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-38906&quot;&gt;&lt;del&gt;SERVER-38906&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/deac75e585f0c21d0a4bdf888e249bd9bdc374c3/jstests/replsets/speculative_read_transaction.js&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;speculative_read_transaction.js&lt;/tt&gt;&lt;/a&gt; already tests the behavior we want.&lt;/p&gt;</comment>
                            <comment id="2191030" author="greg.mckeon" created="Mon, 25 Mar 2019 19:53:01 +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; can we get a prepare label on this?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="769446">SERVER-41165</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>8.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>Mon, 25 Mar 2019 19:53:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 38 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_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>
                            4 years, 38 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>greg.mckeon@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.russotto@mongodb.com</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hulusn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|humexz:</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="2920">Repl 2019-05-20</customfieldvalue>
    <customfieldvalue id="2999">Repl 2019-06-03</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|hulh1z:</customfieldvalue>

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