<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:38:59 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-15783] Consider not bailing when Manager::msgCheckNewState notices two other primaries transiently</title>
                <link>https://jira.mongodb.org/browse/SERVER-15783</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In Manager::msgCheckNewState, if findOtherPrimary finds that two other members think they are primary, the method returns without having done anything. I think in the (unlikely) case where there are &amp;gt; 2 primaries, this may be problematic.&lt;/p&gt;

&lt;p&gt;If there are &amp;gt; 2 primaries, each primary will notice that at least 2 other primaries exist (by having bool two set to true when calling findOtherPrimary), and bail. As a result, no primary steps down.&lt;/p&gt;

&lt;p&gt;Instead, perhaps the function should continue, and noteARemoteIsPrimary should loop through all members checking if there is any primary with a more recent election time, and step down if that is the case. msgCheckNewState will then return anyway given that a primary exists.&lt;/p&gt;

&lt;p&gt;I realize that with the 30 second election timer, having &amp;gt; 2 primaries is incredibly difficult, but if the timer is removed this issue may become more likely.&lt;/p&gt;</description>
                <environment></environment>
        <key id="165038">SERVER-15783</key>
            <summary>Consider not bailing when Manager::msgCheckNewState notices two other primaries transiently</summary>
                <type id="6" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14720&amp;avatarType=issuetype">Question</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="9">Done</resolution>
                                        <assignee username="schwerin@mongodb.com">Andy Schwerin</assignee>
                                    <reporter username="zardosht">Zardosht Kasheff</reporter>
                        <labels>
                    </labels>
                <created>Wed, 22 Oct 2014 19:49:14 +0000</created>
                <updated>Mon, 23 Feb 2015 14:40:12 +0000</updated>
                            <resolved>Mon, 23 Feb 2015 14:40:12 +0000</resolved>
                                    <version>2.6.5</version>
                                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="751590" author="schwerin" created="Wed, 29 Oct 2014 16:41:15 +0000"  >&lt;p&gt;msgCheckNewState still exists on master, but is dead code.  It&apos;ll probably get yanked after the 2.8 branch.  I&apos;ll move this ticket to &quot;Planned but not scheduled&quot;, pending your having time to send a pull request.  Thanks.&lt;/p&gt;</comment>
                            <comment id="751459" author="zardosht" created="Wed, 29 Oct 2014 15:08:23 +0000"  >&lt;p&gt;Andy, thanks for replying. When I filed this ticket, msgCheckNewState still existed on master (I think), and I knew there were plans of removing the 30 second timer. I think those two things together makes this problem more relevant, but it sounds like that will not be true, on 2.6 or 2.8.&lt;/p&gt;

&lt;p&gt;I&apos;ll submit a pull request when I get to this in TokuMX.&lt;/p&gt;</comment>
                            <comment id="751444" author="schwerin" created="Wed, 29 Oct 2014 15:01:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=zardosht&quot; class=&quot;user-hover&quot; rel=&quot;zardosht&quot;&gt;zardosht&lt;/a&gt;, if you successfully got 3 or more nodes to believe they were primary, the problem you describe could occur in 2.6 and before, but is not possible as of 2.7.8.  The difference is that as of 2.7.8, the code that replaces &lt;tt&gt;Manager::msgCheckNewState&lt;/tt&gt; (&lt;tt&gt;TopologyCoordinatorImpl::_updateHeartbeatDataImpl&lt;/tt&gt;) executes synchronously whenever a new heartbeat response comes in.  This means that the processing logic never sees 2 remote primaries that it hasn&apos;t seen before in a single execution.  There will always be some first remote primary to appear, leading to the execution of the step down logic that runs whenever there is exactly one other primary.  Since this is true on every node, eventually all but the most recently elected node will step down of their own volition.&lt;/p&gt;

&lt;p&gt;If you want to produce a pull request for the 2.6 branch, I&apos;ll take a look.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 28 Oct 2014 18:29:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 16 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>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>milkie@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 16 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>zardosht</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrlkzz:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>144064</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|hsgjov:</customfieldvalue>

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