<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:33:35 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-33494] WT SizeStorer never deletes old entries</title>
                <link>https://jira.mongodb.org/browse/SERVER-33494</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The WTSizeStorer is used to keep fast counts for each collection in the system. Creating a collection adds an &lt;tt&gt;`ident` -&amp;gt; `count`&lt;/tt&gt; mapping, but those key/value pairs are never deleted. &lt;/p&gt;

&lt;p&gt;RTT makes this problem worse. When rolling forward from the stable point -&amp;gt; common point re-creates a collection, it will get a new `ident`, thus leaking the previous ident in the table.&lt;/p&gt;</description>
                <environment></environment>
        <key id="502557">SERVER-33494</key>
            <summary>WT SizeStorer never deletes old entries</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="gregory.noma@mongodb.com">Gregory Noma</assignee>
                                    <reporter username="daniel.gottlieb@mongodb.com">Daniel Gottlieb</reporter>
                        <labels>
                    </labels>
                <created>Mon, 26 Feb 2018 18:11:45 +0000</created>
                <updated>Mon, 20 Nov 2023 15:14:34 +0000</updated>
                            <resolved>Mon, 13 Nov 2023 20:19:21 +0000</resolved>
                                                    <fixVersion>7.3.0-rc0</fixVersion>
                    <fixVersion>7.2.0-rc2</fixVersion>
                    <fixVersion>7.0.5</fixVersion>
                    <fixVersion>6.0.13</fixVersion>
                    <fixVersion>5.0.24</fixVersion>
                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>22</watches>
                                                                                                                <comments>
                            <comment id="5886400" author="xgen-internal-githook" created="Thu, 16 Nov 2023 20:05:49 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33494&quot; title=&quot;WT SizeStorer never deletes old entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33494&quot;&gt;&lt;del&gt;SERVER-33494&lt;/del&gt;&lt;/a&gt; Remove size storer entry upon ident drop&lt;/p&gt;

&lt;p&gt;(cherry picked from commit b4e5daaeb51920b0074661c87dc3b3765431e04e)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/529707336a6f57dfced28223dccc14eb5ac38d6d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/529707336a6f57dfced28223dccc14eb5ac38d6d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5885788" author="xgen-internal-githook" created="Thu, 16 Nov 2023 16:46:08 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33494&quot; title=&quot;WT SizeStorer never deletes old entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33494&quot;&gt;&lt;del&gt;SERVER-33494&lt;/del&gt;&lt;/a&gt; Remove size storer entry upon ident drop&lt;/p&gt;

&lt;p&gt;(cherry picked from commit b4e5daaeb51920b0074661c87dc3b3765431e04e)&lt;br/&gt;
Branch: v7.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7c9b028298a072b3cca5306929a4f82cf2768d77&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7c9b028298a072b3cca5306929a4f82cf2768d77&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5885780" author="xgen-internal-githook" created="Thu, 16 Nov 2023 16:44:19 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33494&quot; title=&quot;WT SizeStorer never deletes old entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33494&quot;&gt;&lt;del&gt;SERVER-33494&lt;/del&gt;&lt;/a&gt; Remove size storer entry upon ident drop&lt;/p&gt;

&lt;p&gt;(cherry picked from commit b4e5daaeb51920b0074661c87dc3b3765431e04e)&lt;br/&gt;
Branch: v6.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ee5f8351c194c60f58e85d1f37bec107fde26301&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ee5f8351c194c60f58e85d1f37bec107fde26301&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5883489" author="xgen-internal-githook" created="Wed, 15 Nov 2023 22:16:13 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33494&quot; title=&quot;WT SizeStorer never deletes old entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33494&quot;&gt;&lt;del&gt;SERVER-33494&lt;/del&gt;&lt;/a&gt; Remove size storer entry upon ident drop&lt;/p&gt;

&lt;p&gt;(cherry picked from commit b4e5daaeb51920b0074661c87dc3b3765431e04e)&lt;br/&gt;
Branch: v7.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d8f2a0cbc53ad9d689ef8a5f38a6018587d54782&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d8f2a0cbc53ad9d689ef8a5f38a6018587d54782&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5876848" author="xgen-internal-githook" created="Mon, 13 Nov 2023 20:14:50 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Gregory Noma&apos;, &apos;email&apos;: &apos;gregory.noma@gmail.com&apos;, &apos;username&apos;: &apos;gregorynoma&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33494&quot; title=&quot;WT SizeStorer never deletes old entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33494&quot;&gt;&lt;del&gt;SERVER-33494&lt;/del&gt;&lt;/a&gt; Remove size storer entry upon ident drop&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/b4e5daaeb51920b0074661c87dc3b3765431e04e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/b4e5daaeb51920b0074661c87dc3b3765431e04e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5872203" author="milkie" created="Fri, 10 Nov 2023 20:22:12 +0000"  >&lt;p&gt;Does either startup-repair or the validate command audit the entries in this table?  If not, should they?  At least startup-repair could make sure that any orphaned entries get deleted.&lt;/p&gt;</comment>
                            <comment id="5871173" author="gregory.noma" created="Fri, 10 Nov 2023 15:36:36 +0000"  >&lt;p&gt;Since this ticket is focusing only on removing size storer entries upon collection drop, I filed &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-83120&quot; title=&quot;Mechanism for one-time cleanup of orphaned size storer entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-83120&quot;&gt;SERVER-83120&lt;/a&gt; to look into some one-time cleanup mechanism.&lt;/p&gt;</comment>
                            <comment id="5786490" author="milkie" created="Tue, 17 Oct 2023 23:45:28 +0000"  >&lt;p&gt;Perhaps back in 2018 things worked differently when Dan G originally wrote the details for this ticket.  From what Louis says, I think we should change the title and description to match today&apos;s behavior.&lt;/p&gt;</comment>
                            <comment id="5786098" author="louis.williams" created="Tue, 17 Oct 2023 20:02:36 +0000"  >&lt;p&gt;The size storer, as it exists currently behaves as follows:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;When flushed periodically, it creates an &lt;a href=&quot;#L183-L186&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;entry for every collection&lt;/a&gt; where the key is the unique WT URI and the value is a BSON obj with the size and count information.&lt;/li&gt;
	&lt;li&gt;When a RecordStore is created on startup, &lt;a href=&quot;https://github.com/mongodb/mongo/blob/ecf2be174f4f5a5d961a7d6445fe1d1474e7651d/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp#L676C31-L676C39&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;we load the entry from the SizeStorer table&lt;/a&gt; into memory.&lt;/li&gt;
	&lt;li&gt;When we drop a collection, we do not delete the entry from the SizeStorer table or free it from the WT cache, but we delete the in-memory information in the destructor of the RecordStore.&lt;/li&gt;
	&lt;li&gt;On subsequent startups, the entries for each dropped collection remain in the table, but we do not load them into memory.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;milkie@mongodb.com&quot;&gt;milkie@mongodb.com&lt;/a&gt; I&apos;m not aware of where we would be leaking memory. The problem as I understand it is that we never clean up old entries in the table when we drop collections. But that memory goes away, and it never fills up space in the future, except maybe on WT pages of the size storer. Is there something I&apos;m missing here?&lt;/p&gt;</comment>
                            <comment id="5785953" author="milkie" created="Tue, 17 Oct 2023 19:18:09 +0000"  >&lt;p&gt;I thought we only leaked memory, not the actual records in the table that mirrors the in-memory structure?  In which case, there is no garbage to collect at startup?&lt;/p&gt;</comment>
                            <comment id="5785282" author="steven.vannelli" created="Tue, 17 Oct 2023 16:05:26 +0000"  >&lt;ul&gt;
	&lt;li&gt;At a minimum, we want to have something that will garbage collect on startup. We can evaluate something that cleans it up if necessary.&#160;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="1821114" author="kyle.suarez" created="Fri, 2 Mar 2018 15:12:15 +0000"  >&lt;p&gt;Is there a way to clean up the SizeStorer?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="2493404">SERVER-82902</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2493409">SERVER-82903</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2496826">SERVER-83120</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2501953">SERVER-83336</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>12.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25136"><![CDATA[Storage Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="26553"><![CDATA[v7.2]]></customfieldvalue>
    <customfieldvalue key="25578"><![CDATA[v7.0]]></customfieldvalue>
    <customfieldvalue key="23470"><![CDATA[v6.0]]></customfieldvalue>
    <customfieldvalue key="21777"><![CDATA[v5.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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5006R00001wujjVQAQ]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 2 Mar 2018 15:12:15 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        11 weeks, 6 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            11 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>152.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>daniel.gottlieb@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>gregory.noma@mongodb.com</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>steven.vannelli@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htr693:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr24kf:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7564">Execution Team 2023-11-13</customfieldvalue>
    <customfieldvalue id="7565">Execution Team 2023-11-27</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|htqsfb:</customfieldvalue>

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