<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:27:08 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-31462] convertToCapped + renameCollection may cause a segfault</title>
                <link>https://jira.mongodb.org/browse/SERVER-31462</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt; A &lt;tt&gt;renameCollection&lt;/tt&gt; command renaming a collection to itself following a &lt;tt&gt;convertToCapped&lt;/tt&gt; can cause a segfault. (&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31022&quot; title=&quot;renameCollection with dropTarget can segfault on 3.5&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31022&quot;&gt;&lt;del&gt;SERVER-31022&lt;/del&gt;&lt;/a&gt; recorded a similar issue where &lt;tt&gt;renameCollection&lt;/tt&gt; by itself could cause a segfault, but that has been fixed and will now return an error to the user)&lt;/p&gt;</description>
                <environment></environment>
        <key id="442495">SERVER-31462</key>
            <summary>convertToCapped + renameCollection may cause a segfault</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="xiangyu.yao@mongodb.com">Xiangyu Yao</assignee>
                                    <reporter username="robert.guo@mongodb.com">Robert Guo</reporter>
                        <labels>
                            <label>rbfz</label>
                    </labels>
                <created>Mon, 9 Oct 2017 16:04:34 +0000</created>
                <updated>Mon, 30 Oct 2023 23:12:58 +0000</updated>
                            <resolved>Wed, 1 Nov 2017 15:10:14 +0000</resolved>
                                    <version>3.5.13</version>
                                    <fixVersion>3.2.19</fixVersion>
                    <fixVersion>3.4.12</fixVersion>
                    <fixVersion>3.6.0-rc3</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="1789563" author="xgen-internal-githook" created="Tue, 30 Jan 2018 19:28:45 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;xiangyu.yao@mongodb.com&apos;, &apos;name&apos;: &apos;Xiangyu Yao&apos;, &apos;username&apos;: &apos;xy24&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31462&quot; title=&quot;convertToCapped + renameCollection may cause a segfault&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31462&quot;&gt;&lt;del&gt;SERVER-31462&lt;/del&gt;&lt;/a&gt; Register Database::AddCollectionChange in the correct order&lt;/p&gt;

&lt;p&gt;The wrong order leads to the rollback of CollectionImpl happening after&lt;br/&gt;
the rollback of KVCollectionCatalogEntry. This means the Collection destructor&lt;br/&gt;
would call setCappedCallback() on an already destroyed RecordStore.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit f9e38f099a892964a09d4a80aafd8edfef21594d)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/97fbe83558a3d018b89eaff2d1ff74df1e67782d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/97fbe83558a3d018b89eaff2d1ff74df1e67782d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1789554" author="xgen-internal-githook" created="Tue, 30 Jan 2018 19:24:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;xiangyu.yao@mongodb.com&apos;, &apos;name&apos;: &apos;Xiangyu Yao&apos;, &apos;username&apos;: &apos;xy24&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31462&quot; title=&quot;convertToCapped + renameCollection may cause a segfault&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31462&quot;&gt;&lt;del&gt;SERVER-31462&lt;/del&gt;&lt;/a&gt; Register Database::AddCollectionChange in the correct order&lt;/p&gt;

&lt;p&gt;The wrong order leads to the rollback of CollectionImpl happening after&lt;br/&gt;
the rollback of KVCollectionCatalogEntry. This means the Collection destructor&lt;br/&gt;
would call setCappedCallback() on an already destroyed RecordStore.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit f9e38f099a892964a09d4a80aafd8edfef21594d)&lt;br/&gt;
Branch: v3.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/bdb080651afe340a10f1fb55dcc89fd767b28003&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/bdb080651afe340a10f1fb55dcc89fd767b28003&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1726764" author="william.schultz" created="Wed, 15 Nov 2017 18:40:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=robert.guo&quot; class=&quot;user-hover&quot; rel=&quot;robert.guo&quot;&gt;robert.guo&lt;/a&gt; Are there things that need to be re-enabled in the rollback fuzzer since this ticket has been resolved?&lt;/p&gt;</comment>
                            <comment id="1714552" author="xgen-internal-githook" created="Wed, 1 Nov 2017 15:01:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;xiangyu.yao@mongodb.com&apos;, &apos;name&apos;: &apos;Xiangyu Yao&apos;, &apos;username&apos;: &apos;xy24&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31462&quot; title=&quot;convertToCapped + renameCollection may cause a segfault&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31462&quot;&gt;&lt;del&gt;SERVER-31462&lt;/del&gt;&lt;/a&gt; Register Database::AddCollectionChange in the correct order&lt;/p&gt;

&lt;p&gt;The wrong order leads to the rollback of CollectionImpl happening after&lt;br/&gt;
the rollback of KVCollectionCatalogEntry. This means the Collection destructor&lt;br/&gt;
would call setCappedCallback() on an already destroyed RecordStore.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/f9e38f099a892964a09d4a80aafd8edfef21594d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/f9e38f099a892964a09d4a80aafd8edfef21594d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1714213" author="xiangyu.yao" created="Wed, 1 Nov 2017 03:41:28 +0000"  >&lt;p&gt;Here is why it destructs the &lt;em&gt;KVCCE&lt;/em&gt; and the &lt;em&gt;CollectionImpl&lt;/em&gt; in the wrong order:&lt;/p&gt;

&lt;p&gt;We register in &lt;em&gt;RecoveryUnit&lt;/em&gt; &lt;b&gt;DatabaseImpl::AddCollectionChange&lt;/b&gt; before &lt;b&gt;KVCCE::AddCollectionChange&lt;/b&gt;, so when the abortion happens (in this case, because we first drop the target which is &quot;test.test&quot; itself so the renaming would abort), &lt;b&gt;KVCCE::AddCollectionChange::rollback()&lt;/b&gt; will be triggered ahead of &lt;b&gt;DatabaseImpl::AddCollectionChange::rollback()&lt;/b&gt;, thus making the destruction of &lt;em&gt;KVCCE&lt;/em&gt; precede that of &lt;em&gt;CollectionImpl&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That only happens to &lt;b&gt;renameCollection()&lt;/b&gt; rather than &lt;b&gt;createCollection()&lt;/b&gt; because the ordering of registrations in createCollection() is fixed by &lt;a href=&quot;https://github.com/mongodb/mongo/commit/f985c0ce3fa7efb0e857747f0a72bdef3326ac55&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;commit for SERVER-26685&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1711005" author="milkie" created="Fri, 27 Oct 2017 13:33:20 +0000"  >&lt;p&gt;It appears that the catalog code is assuming that the RecordStore&apos;s lifetime will outlast its corresponding Collection&apos;s lifetime.  Which translates into the KVCCE outlasting the Collection.  It sounds like whatever code is doing the dropping of that collection, it is destructing the KVCCE and the Collection in the wrong order; I would look at that code to see what&apos;s going on there.  In a normal drop collection codepath, this isn&apos;t a problem, so it must be related to either the convertToCapped or renameCollection code paths when they drop their source collections, or when renameCollection drops its target collection.&lt;/p&gt;</comment>
                            <comment id="1710964" author="xiangyu.yao" created="Fri, 27 Oct 2017 12:53:20 +0000"  >&lt;p&gt;&lt;b&gt;Conclusion:&lt;/b&gt;&lt;br/&gt;
The problem is that there are two pointers, a smart pointer and one normal pointer, owned by different objects but pointing to&lt;br/&gt;
the same resource. When we drop a collection and delete relevant objects, the resource gets freed because of the smart pointer mechanism.&lt;br/&gt;
But then the normal pointer tries to access the resource which is gone, thus causing this SegFault.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Detail:&lt;/b&gt;&lt;br/&gt;
&lt;b&gt;KVCollectionCatalogEntry&lt;/b&gt; owns a smart pointer to &lt;b&gt;RecordStore&lt;/b&gt;:&lt;br/&gt;
In &lt;em&gt;kv_collection_catalog_entry.h&lt;/em&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;   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;std::unique_ptr&amp;lt;RecordStore&amp;gt; _recordStore;  // owned&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;And there is a &quot;stupid&quot; pointer in &lt;b&gt;CollectionImpl&lt;/b&gt;:&lt;br/&gt;
In &lt;em&gt;collection_impl.h&lt;/em&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;   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;    RecordStore* const _recordStore;&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;They refer to the same thing!&lt;/p&gt;

&lt;p&gt;Here is what happened when I reproduced the bug: The system dropped a collection called &lt;b&gt;&quot;test.system.drop.xxxxxxxx.test&quot;&lt;/b&gt;. And this made &lt;b&gt;KVCollectionCatalogEntry&lt;/b&gt; get destructed, so the smart pointer freed the resource.&lt;br/&gt;
And later &lt;b&gt;CollectionImpl&lt;/b&gt; got destructed:&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;CollectionImpl::~CollectionImpl() {&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;    verify(ok());&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;    if (isCapped()) {&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;        _recordStore-&amp;gt;setCappedCallback(nullptr);  ----&amp;gt; Line A&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;        _cappedNotifier-&amp;gt;kill();&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;&lt;b&gt;Line A:&lt;/b&gt; This would try to dereference the stupid pointer _recordStore which points to garbage.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Solutions I can think of:&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Make _&lt;em&gt;recordStore&lt;/em&gt; a shared pointer instead&lt;/li&gt;
	&lt;li&gt;Delete &lt;b&gt;Line A&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="426034">SERVER-31022</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="14340"><![CDATA[v3.4]]></customfieldvalue>
    <customfieldvalue key="13440"><![CDATA[v3.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, 27 Oct 2017 12:53:20 +0000</customfieldvalue>

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


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14262" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 13 Oct 2017 00:00:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 2 weeks, 1 day ago
                        </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>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>robert.guo@mongodb.com</customfieldvalue>
            <customfieldvalue>william.schultz@mongodb.com</customfieldvalue>
            <customfieldvalue>xiangyu.yao@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hthd4n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht99gf:</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="1951">Storage 2017-11-13</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 9 Oct 2017 00:00:00 +0000</customfieldvalue>

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

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

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