<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:44: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-36831] LogicalSessionCache on mongos does not correctly report active operations</title>
                <link>https://jira.mongodb.org/browse/SERVER-36831</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Investigation&quot;&gt;&lt;/a&gt;Investigation&lt;/h2&gt;
&lt;p&gt;Generically speaking (on any node), the LogicalSessionCache on that node &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.2/src/mongo/db/logical_session_cache_impl.cpp#L329-L340&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;uses&lt;/a&gt;&#160;its ServiceLiaison&apos;s getActiveOpSessions() method to collect the set of currently active operations that are associated with a session.&lt;/p&gt;

&lt;p&gt;(This is to collect the set of &lt;b&gt;long-running operations&lt;/b&gt;&#160;that have been active since the last time the LogicalSessionCache updated the sessions records. &lt;b&gt;New operations&lt;/b&gt;&#160;that have come in since the last time the LogicalSessionCache updated the sessions records are collected through LogicalSessionCache::vivify() &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.2/src/mongo/db/initialize_operation_session_info.cpp#L88&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;in each node&apos;s service entry point&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The ServiceLiaison interface has a mongod and mongos implementation.&lt;/p&gt;

&lt;p&gt;ServiceLiaison*Mongod*::getActiveOpSessions() &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.2/src/mongo/db/service_liaison_mongod.cpp#L48-L64&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;walks through all Clients currently on the ServiceContext&lt;/a&gt;&#160;to collection the currently active operations.&lt;/p&gt;

&lt;p&gt;However, the ServiceLiaison*Mongos*::getActiveOpSessions() simply &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.2/src/mongo/db/service_liaison_mongos.cpp#L47-L49&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;looks at the open cursors currently in the CursorManager&lt;/a&gt;. As a result, even if there is no activity on these cursors, sessions with open cursors will not be reaped.&lt;/p&gt;

&lt;p&gt;It looks like this is a copy-paste error, and that the lines in ServiceLiaisonMongos::getActiveOpSessions() should instead be &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.1.2/src/mongo/db/service_liaison_mongos.cpp#L56&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;here&lt;/a&gt;&#160;in ServiceLiaisonMongos::getOpenCursorSessions().&lt;/p&gt;

&lt;p&gt;But, I think it&apos;s worth taking a step back to examine the ServiceLiaison on mongos and mongod to make sure it is capturing the right information - why doesn&apos;t the ServiceLiaisonMongos walk through Clients on its ServiceContext to capture long-running operations on sessions (the way ServiceLiaisonMongod does) that are not associated with a cursor and do not touch any shards?&lt;/p&gt;

&lt;p&gt;This bug also affects &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r4.0.1/src/mongo/db/service_liaison_mongos.cpp#L47-L49&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4.0.1&lt;/a&gt;&#160;and &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.6.7/src/mongo/db/service_liaison_mongos.cpp#L47-L49&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;3.6.7&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;ProposedFix&quot;&gt;&lt;/a&gt;Proposed Fix&lt;/h2&gt;
&lt;p&gt;We have agreed that the two service liaisons should behave in the same manner. We have also agreed that ServiceLiaison*Mongod has the correct implementation of both getActiveOpSessions() and getOpenCursorSessions().&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Move the implementation of ServiceLiaison*Mongos*::getActiveOpSessions() to ServiceLiaison*Mongos*::getOpenCursorSessions(), to match the ServiceLiaison*Mongod*getOpenCursorSessions() implementation.&lt;/li&gt;
	&lt;li&gt;Mirror the implementation of ServiceLiaison*Mongod*::getActiveOpSessions() to match ServiceLiason*Mongod*::getActiveOpSessions().&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="593631">SERVER-36831</key>
            <summary>LogicalSessionCache on mongos does not correctly report active operations</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="blake.oler@mongodb.com">Blake Oler</assignee>
                                    <reporter username="esha.maharishi@mongodb.com">Esha Maharishi</reporter>
                        <labels>
                    </labels>
                <created>Thu, 23 Aug 2018 20:56:27 +0000</created>
                <updated>Sun, 29 Oct 2023 22:28:42 +0000</updated>
                            <resolved>Fri, 21 Sep 2018 13:37:42 +0000</resolved>
                                    <version>3.6.7</version>
                    <version>4.0.1</version>
                    <version>4.1.2</version>
                                    <fixVersion>3.6.9</fixVersion>
                    <fixVersion>4.0.4</fixVersion>
                    <fixVersion>4.1.3</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>8</watches>
                                                                                                                <comments>
                            <comment id="2023388" author="xgen-internal-githook" created="Thu, 4 Oct 2018 12:09:13 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Blake Oler&apos;, &apos;email&apos;: &apos;blake.oler@mongodb.com&apos;, &apos;username&apos;: &apos;BlakeIsBlake&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36831&quot; title=&quot;LogicalSessionCache on mongos does not correctly report active operations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36831&quot;&gt;&lt;del&gt;SERVER-36831&lt;/del&gt;&lt;/a&gt; Report active operations correctly on the ServiceLiaison for mongos&lt;/p&gt;

&lt;p&gt;(cherry picked from 19a5f8726fed990bd75d2a0426f53f691ee82b97)&lt;br/&gt;
Branch: v4.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ad174d983b327a1355ec52cfb441171eb370e0f8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ad174d983b327a1355ec52cfb441171eb370e0f8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2023387" author="xgen-internal-githook" created="Thu, 4 Oct 2018 12:04:59 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Blake Oler&apos;, &apos;email&apos;: &apos;blake.oler@mongodb.com&apos;, &apos;username&apos;: &apos;BlakeIsBlake&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36831&quot; title=&quot;LogicalSessionCache on mongos does not correctly report active operations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36831&quot;&gt;&lt;del&gt;SERVER-36831&lt;/del&gt;&lt;/a&gt; Report active operations correctly on the ServiceLiaison for mongos&lt;/p&gt;

&lt;p&gt;(cherry picked from 19a5f8726fed990bd75d2a0426f53f691ee82b97)&lt;br/&gt;
Branch: v3.6&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/6375b12faf20b84b0a2e714be91cc726d3092231&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/6375b12faf20b84b0a2e714be91cc726d3092231&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2010067" author="xgen-internal-githook" created="Fri, 21 Sep 2018 02:52:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Blake Oler&apos;, &apos;email&apos;: &apos;blake.oler@mongodb.com&apos;, &apos;username&apos;: &apos;BlakeIsBlake&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36831&quot; title=&quot;LogicalSessionCache on mongos does not correctly report active operations&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36831&quot;&gt;&lt;del&gt;SERVER-36831&lt;/del&gt;&lt;/a&gt; Report active operations correctly on the ServiceLiaison for mongos&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/19a5f8726fed990bd75d2a0426f53f691ee82b97&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/19a5f8726fed990bd75d2a0426f53f691ee82b97&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2009753" author="misha.tyulenev" created="Thu, 20 Sep 2018 20:08:02 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=blake.oler&quot; class=&quot;user-hover&quot; rel=&quot;blake.oler&quot;&gt;blake.oler&lt;/a&gt; ack the fix&lt;/p&gt;</comment>
                            <comment id="2009699" author="blake.oler" created="Thu, 20 Sep 2018 19:28:43 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=misha.tyulenev&quot; class=&quot;user-hover&quot; rel=&quot;misha.tyulenev&quot;&gt;misha.tyulenev&lt;/a&gt; ack proposed fix?&lt;/p&gt;</comment>
                            <comment id="2007723" author="misha.tyulenev" created="Wed, 19 Sep 2018 14:29:10 +0000"  >&lt;p&gt;I agree with &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;. mongos needs to kill cursors that are not running but handled by CursorManager.&lt;br/&gt;
This means that at first it needs to sync the sessions that are open and active by walking through clients in the serviceContext and then make a list of session ids to kill by taking a difference between sessions collection and currently open sessions from CursorManager.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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="15640"><![CDATA[v4.0]]></customfieldvalue>
    <customfieldvalue key="15141"><![CDATA[v3.6]]></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>Wed, 19 Sep 2018 14:29:10 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        5 years, 18 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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-1237</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 18 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>blake.oler@mongodb.com</customfieldvalue>
            <customfieldvalue>esha.maharishi@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>misha.tyulenev@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu69in:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htwtgv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2482">Sharding 2018-09-24</customfieldvalue>

                        </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|hu5vrz:</customfieldvalue>

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