<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:37:28 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-78108] POS interface should expose its shutdown state </title>
                <link>https://jira.mongodb.org/browse/SERVER-78108</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The Primary Only Service currently lacks a static method that allows derived classes to determine whether the service has been shut down. The existing &lt;a href=&quot;https://github.com/mongodb/mongo/blob/7732e495e62756a46b5bbf29069db550ea3dda0a/src/mongo/db/repl/primary_only_service.cpp#L611&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lookupInstance()&lt;/a&gt; method does not distinguish between an instance not being present in the registry and the internal state being &lt;tt&gt;State::kShutdown&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;The need for this functionality arose from issue &lt;a href=&quot;https://jira.mongodb.org/browse/BF-29013&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;BF-29013&lt;/a&gt;. To generalize the requirement, if a command is interrupted due to a shutdown, a retry may end up on the same node if the primary is unable to step down quickly due to reasons like lagging secondary nodes. Since the shutdown operation is not atomic and external observers may see different system states, the command needs visibility of POS state to perform the right action which can be to retry the command due to POS Shutdown until a new primary assumes its role to communicate the same to the sender of the command. The state if exposed by throwing a &lt;tt&gt;Shutdown&lt;/tt&gt; error would be nice in a lookup() method, otherwise a function to check if service is shutdown will suffice albeit at the cost of some boiler plate code at callers.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2368511">SERVER-78108</key>
            <summary>POS interface should expose its shutdown state </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="wenbin.zhu@mongodb.com">Wenbin Zhu</assignee>
                                    <reporter username="abdul.qadeer@mongodb.com">Abdul Qadeer</reporter>
                        <labels>
                    </labels>
                <created>Wed, 14 Jun 2023 20:09:33 +0000</created>
                <updated>Thu, 9 Nov 2023 16:07:02 +0000</updated>
                            <resolved>Mon, 10 Jul 2023 19:40:54 +0000</resolved>
                                                    <fixVersion>7.1.0-rc0</fixVersion>
                    <fixVersion>7.0.3</fixVersion>
                    <fixVersion>6.0.12</fixVersion>
                    <fixVersion>5.0.23</fixVersion>
                                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="5866267" author="xgen-internal-githook" created="Thu, 9 Nov 2023 00:10:40 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Wenbin Zhu&apos;, &apos;email&apos;: &apos;wenbin.zhu@mongodb.com&apos;, &apos;username&apos;: &apos;WenbinZhu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78108&quot; title=&quot;POS interface should expose its shutdown state &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78108&quot;&gt;&lt;del&gt;SERVER-78108&lt;/del&gt;&lt;/a&gt; Expose primary state when doing POS instance lookup.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c3496898db5124006252b129f2c9a5461e1737ac)&lt;br/&gt;
(cherry picked from commit fef5c0d8c8312b01bb2ef061455bca31d1c4d7c6)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/903e61a3264714275c9bbd5d95cfbd1dfcd36e5b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/903e61a3264714275c9bbd5d95cfbd1dfcd36e5b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5861055" author="xgen-internal-githook" created="Tue, 7 Nov 2023 16:30:15 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Wenbin Zhu&apos;, &apos;email&apos;: &apos;wenbin.zhu@mongodb.com&apos;, &apos;username&apos;: &apos;WenbinZhu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78108&quot; title=&quot;POS interface should expose its shutdown state &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78108&quot;&gt;&lt;del&gt;SERVER-78108&lt;/del&gt;&lt;/a&gt; Expose primary state when doing POS instance lookup.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c3496898db5124006252b129f2c9a5461e1737ac)&lt;br/&gt;
Branch: v6.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/fef5c0d8c8312b01bb2ef061455bca31d1c4d7c6&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/fef5c0d8c8312b01bb2ef061455bca31d1c4d7c6&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5753278" author="xgen-internal-githook" created="Wed, 4 Oct 2023 19:20:04 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Wenbin Zhu&apos;, &apos;email&apos;: &apos;wenbin.zhu@mongodb.com&apos;, &apos;username&apos;: &apos;WenbinZhu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78108&quot; title=&quot;POS interface should expose its shutdown state &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78108&quot;&gt;&lt;del&gt;SERVER-78108&lt;/del&gt;&lt;/a&gt; Expose primary state when doing POS instance lookup.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit c3496898db5124006252b129f2c9a5461e1737ac)&lt;br/&gt;
Branch: v7.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0ba4e8ffb2f804ff650320f20ded544605544ec5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0ba4e8ffb2f804ff650320f20ded544605544ec5&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5555561" author="xgen-internal-githook" created="Mon, 10 Jul 2023 19:26:35 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Wenbin Zhu&apos;, &apos;email&apos;: &apos;wenbin.zhu@mongodb.com&apos;, &apos;username&apos;: &apos;WenbinZhu&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-78108&quot; title=&quot;POS interface should expose its shutdown state &quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-78108&quot;&gt;&lt;del&gt;SERVER-78108&lt;/del&gt;&lt;/a&gt; Expose primary state when doing POS instance lookup.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c3496898db5124006252b129f2c9a5461e1737ac&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c3496898db5124006252b129f2c9a5461e1737ac&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5532288" author="JIRAUSER1258790" created="Wed, 28 Jun 2023 20:15:22 +0000"  >&lt;p&gt;Instead of letting &lt;tt&gt;lookup()&lt;/tt&gt; and &lt;tt&gt;lookupInstance()&lt;/tt&gt; throw exception if the service is shutdown or stepped down, we are going to augment the interface of lookup() and lookupInstance() to return an additional flag indicating if the service is shutdown/stepdown or the instanceID is invalid. When the application cannot get a POS instance when calling either method, it can choose to check this flag to determine if different actions needs to be done. We will file new tickets for teams that own such applications to investigate if they need to check the new flag. cc &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=abdul.qadeer%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;abdul.qadeer@mongodb.com&quot;&gt;abdul.qadeer@mongodb.com&lt;/a&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="5532261" author="JIRAUSER1258790" created="Wed, 28 Jun 2023 20:06:25 +0000"  >&lt;blockquote&gt;

&lt;p&gt;an instance not being present in the registry&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To clarify, this means that the &lt;tt&gt;instanceID&lt;/tt&gt; that the caller passes into &lt;tt&gt;lookupInstance()&lt;/tt&gt; does not match any instanceID that service is aware of. The set of instanceID&apos;s that the service knows about are the _id values of the state documents. Also note that &lt;tt&gt;lookupInstance()&lt;/tt&gt; waits for service state to be not &lt;tt&gt;kRebuilding&lt;/tt&gt; before doing the instance lookup.&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="2365917">SERVER-78009</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2387924">SERVER-78839</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2387925">SERVER-78840</issuekey>
        </issuelink>
                            </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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25132"><![CDATA[Service Arch]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 28 Jun 2023 20:06:25 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        13 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_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>dbeng-pm-bot</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            13 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>abdul.qadeer@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>wenbin.zhu@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2dx33:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1w4b4:</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_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="7353">Service Arch 2023-07-10</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|i2dj8f:</customfieldvalue>

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