<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:47:36 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-59586] Catchup takeover cannot be scheduled if primary has caught up but stuck before being writeable primary</title>
                <link>https://jira.mongodb.org/browse/SERVER-59586</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Secondaries schedule catchup take over when they think that the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1bf0b9e307160213b47a1b996ea2abb68be1169f/src/mongo/db/repl/topology_coordinator.cpp#L1533-L1534&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;primary&apos;s last applied opTime is behind itself&lt;/a&gt;. However if the primary is already caught up (either it caught up due to the normal catchup mechanism on stepup or it is already newer by the time it is elected), no secondary can schedule catchup takeover, therefore if the primary is stuck before it becomes a writeable primary (e.g. stuck in bumping config term), the whole systems freezes because no catchup takeover is scheduled. So it seems that we should relax the criteria of scheduling catchup takeover by depending on whether &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1bf0b9e307160213b47a1b996ea2abb68be1169f/src/mongo/db/repl/topology_coordinator.cpp#L1530&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;primary has written a new entry in the new term&lt;/a&gt; (which indicates that is has become writable), without &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1bf0b9e307160213b47a1b996ea2abb68be1169f/src/mongo/db/repl/topology_coordinator.cpp#L1533-L1534&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;requiring that primary is behind&lt;/a&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1860200">SERVER-59586</key>
            <summary>Catchup takeover cannot be scheduled if primary has caught up but stuck before being writeable primary</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="backlog-server-repl">Backlog - Replication Team</assignee>
                                    <reporter username="wenbin.zhu@mongodb.com">Wenbin Zhu</reporter>
                        <labels>
                    </labels>
                <created>Wed, 25 Aug 2021 19:03:41 +0000</created>
                <updated>Tue, 6 Dec 2022 00:58:43 +0000</updated>
                            <resolved>Mon, 30 Aug 2021 19:06:47 +0000</resolved>
                                                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4029914" author="JIRAUSER1258790" created="Mon, 30 Aug 2021 19:07:59 +0000"  >&lt;p&gt;Superseded by&#160;PM-1039&#160;&lt;/p&gt;</comment>
                            <comment id="4022977" author="JIRAUSER1258790" created="Wed, 25 Aug 2021 22:36:26 +0000"  >&lt;p&gt;We might want to have a&#160;&#160;&lt;a href=&quot;https://docs.mongodb.com/manual/administration/monitoring/#storage-node-watchdog&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Storage Watchdog&lt;/a&gt;&#160;and integrate into&#160;PM-1039&#160;as a more generic solution as pointed out by &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=judah.schvimer&quot; class=&quot;user-hover&quot; rel=&quot;judah.schvimer&quot;&gt;judah.schvimer&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4022970" author="JIRAUSER1258790" created="Wed, 25 Aug 2021 22:30:55 +0000"  >&lt;p&gt;Yeah &quot;improvement&quot; makes sense to me. I will change the category to &quot;improvement&quot;, thanks.&lt;/p&gt;

&lt;p&gt;As for the catchup timeout, I initially thought it would also help break out of drain mode and step down, but after checking the code, it seems only able to abort the catchup mode, so I guess that statement was incorrect, please ignore it.&lt;/p&gt;</comment>
                            <comment id="4022936" author="samy.lanka" created="Wed, 25 Aug 2021 21:54:48 +0000"  >&lt;p&gt;I guess I&apos;d argue that the primary being stuck is the issue, not that another node didn&apos;t perform a takeover. I think the latter is more undesirable behavior (or a potential improvement) rather than a bug. &lt;/p&gt;

&lt;p&gt;I&apos;m not sure I understand your point about disabling catchup timeout though. What other cases are you thinking of that the catchup timeout handles?&lt;/p&gt;</comment>
                            <comment id="4022714" author="JIRAUSER1258790" created="Wed, 25 Aug 2021 20:18:32 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=samy.lanka&quot; class=&quot;user-hover&quot; rel=&quot;samy.lanka&quot;&gt;samy.lanka&lt;/a&gt;&#160;Yeah if we go with the proposed solution, it sounds more like a feature request, but its original purpose is to solve a bug. We can change the ticket category once we decide on the solution. Also note that starting from introducing catchup takeover, we disabled catchup timeout on the primary by default, so this also seems kind of a bug if we define catchup takeover as only about taking over the primary that is catching up oplog for too long because&#160;catchup timeout is able to handle more cases.&lt;/p&gt;</comment>
                            <comment id="4022684" author="samy.lanka" created="Wed, 25 Aug 2021 20:05:47 +0000"  >&lt;p&gt;It sounds like this is a proposal to change catchup takeover from being about primary catchup taking too long to being about a node taking too long to be able to start accepting writes after being elected (for whatever reason). In that sense, this feels like a new feature request rather than a bug. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25128"><![CDATA[Replication]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000xDiMIQA0]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 25 Aug 2021 20:05:47 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        2 years, 23 weeks, 2 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_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>alexander.golin@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            2 years, 23 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-repl</customfieldvalue>
            <customfieldvalue>samy.lanka@mongodb.com</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|hzz89r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hzj95j:</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_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|hzyuin:</customfieldvalue>

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