<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:19:40 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-29011] Compact Calls to WiredTiger take multiple overlapping WT_SESSION objects</title>
                <link>https://jira.mongodb.org/browse/SERVER-29011</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;We have seen build failures with a stuck cache when running the FSM suite and compact tasks are in flight.&lt;/p&gt;

&lt;p&gt;Diving into the issue, it appears that the compact operation runs over multiple WT_SESSION objects. A first session, with an &quot;empty&quot; transaction is opened when the command is in the early stages, then subsequent sessions are taken from the session cache to run compact on the record store and each index. &lt;/p&gt;

&lt;p&gt;This can cause problems in testing due to there being a single transaction running for the length of all the compact operations.&lt;/p&gt;

&lt;p&gt;There may also be scope here for a more full review of places in the WiredTiger KV Engine that we can go through and find locations that also exhibit this behaviour of opening sessions with transactions that are never used or taking sessions directly from the session cache.&lt;/p&gt;</description>
                <environment></environment>
        <key id="378479">SERVER-29011</key>
            <summary>Compact Calls to WiredTiger take multiple overlapping WT_SESSION objects</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="david.hows">David Hows</assignee>
                                    <reporter username="david.hows">David Hows</reporter>
                        <labels>
                            <label>bkp</label>
                    </labels>
                <created>Fri, 28 Apr 2017 04:05:17 +0000</created>
                <updated>Mon, 30 Oct 2023 23:17:08 +0000</updated>
                            <resolved>Thu, 4 May 2017 18:48:27 +0000</resolved>
                                    <version>3.5.7</version>
                                    <fixVersion>3.4.6</fixVersion>
                    <fixVersion>3.5.7</fixVersion>
                                    <component>Storage</component>
                    <component>WiredTiger</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="1597540" author="xgen-internal-githook" created="Thu, 15 Jun 2017 02:00:19 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;daveh86&apos;, u&apos;name&apos;: u&apos;David Hows&apos;, u&apos;email&apos;: u&apos;howsdav@gmail.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29011&quot; title=&quot;Compact Calls to WiredTiger take multiple overlapping WT_SESSION objects&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29011&quot;&gt;&lt;del&gt;SERVER-29011&lt;/del&gt;&lt;/a&gt; Don&apos;t use side sessions during compacts in the WT KV Engine&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 584d4a6a25ce56b07f13247b3ce7fe298b4a111e)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4a92de28ed34f85e190744bda3930f3cdbc85e75&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4a92de28ed34f85e190744bda3930f3cdbc85e75&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1562028" author="xgen-internal-githook" created="Tue, 2 May 2017 02:16:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;daveh86&apos;, u&apos;name&apos;: u&apos;David Hows&apos;, u&apos;email&apos;: u&apos;howsdav@gmail.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29011&quot; title=&quot;Compact Calls to WiredTiger take multiple overlapping WT_SESSION objects&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29011&quot;&gt;&lt;del&gt;SERVER-29011&lt;/del&gt;&lt;/a&gt; Don&apos;t use side sessions during compacts in the WT KV Engine&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/584d4a6a25ce56b07f13247b3ce7fe298b4a111e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/584d4a6a25ce56b07f13247b3ce7fe298b4a111e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1559991" author="david.hows" created="Fri, 28 Apr 2017 07:35:03 +0000"  >&lt;p&gt;After some discussion I have set the scope at looking at the slower WiredTiger session methods, compact and truncate.&lt;/p&gt;

&lt;p&gt;I had initially considered create and drop, but create operations (on a record store at least) are always within a WUOW. Drops face similar issues, as the opCtx is not currently plumbed down to the level where we perform all the drop operations.&lt;/p&gt;

&lt;p&gt;I had also considered looking at salvage, verify and checkpoint. These three had issues with access of opCtx objects as well. With salvage and verify having the potential to be used at the instanciation of the WT KV Engine and checkpoint being run by durability code.&lt;/p&gt;</comment>
                            <comment id="1559977" author="david.hows" created="Fri, 28 Apr 2017 06:48:21 +0000"  >&lt;p&gt;As noted, I found that we take extra sessions from the WiredTiger session cache to perform compact operations. I&apos;m currently testing a change where we would take these sessions from the opCtx/recoveryUnit and then close the automatically opened txn (with abandonSnapshot).&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.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_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="14340"><![CDATA[v3.4]]></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, 1 May 2017 21:42:07 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 35 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_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, 35 weeks 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_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>david.hows</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht6kaf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hraslz:</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="1670">Storage 2017-05-08</customfieldvalue>
    <customfieldvalue id="1684">Storage 2017-05-29</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10750" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Steps To Reproduce</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Instrument code to show all session take/return calls.&lt;br/&gt;
Run a compact. &lt;br/&gt;
Track when each session is taken vs returned.&lt;/p&gt;</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|hrlllj:</customfieldvalue>

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