<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:30:49 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-32633] Provide a framework to ensure a last-stable binary version node in a latest featureCompatibilityVersion replica set detects it has become isolated from a majority for all last stable binary versions &gt;= 3.8 and crashes upon this detection</title>
                <link>https://jira.mongodb.org/browse/SERVER-32633</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;As of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-29350&quot; title=&quot;Bump featureCompatibilityVersion to 3.6&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-29350&quot;&gt;&lt;del&gt;SERVER-29350&lt;/del&gt;&lt;/a&gt;, a last-stable binary version secondary in a replica set cannot replicate from a latest binary version primary once the primary&apos;s featureCompatibilityVersion has been set to the latest version. Instead, its attempts to send heartbeats to the primary will &lt;a href=&quot;https://github.com/mongodb/mongo/blob/67500efdc1c677173c737ecde2b07b42015ae5fd/src/mongo/rpc/protocol.cpp#L210-L224&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;fail with IncompatibleServerVersion errors&lt;/a&gt;. Rather than continuously sending these failing heartbeats, a last-stable binary version secondary in this state should gracefully fail. This framework should be available for all last-stable binary versions &amp;gt;= 3.8.&lt;br/&gt;
A proposed implementation to detect this scenario and crash upon detection follows:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;If a node detects IncompatibleServerVersion errors upon sending heartbeats to a majority of the nodes in a replica set, it should crash. It is necessary to detect these errors from a majority of the nodes to make sure node availability is not hindered in the event that there are multiple last-stable binary version nodes.&lt;/li&gt;
	&lt;li&gt;This detection will be performed by the replication coordinator. The replication coordinator will conclude that a node has become isolated when the heartbeats the node sends fail with IncompatibleServerVersion errors from a majority. This high-level implementation is justifiable because we only want a last-stable binary version mongod to crash in the event that it is part of a latest featureCompatibilityVersion replica set.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="481159">SERVER-32633</key>
            <summary>Provide a framework to ensure a last-stable binary version node in a latest featureCompatibilityVersion replica set detects it has become isolated from a majority for all last stable binary versions &gt;= 3.8 and crashes upon this detection</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</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="maria.vankeulen@mongodb.com">Maria van Keulen</assignee>
                                    <reporter username="maria.vankeulen@mongodb.com">Maria van Keulen</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Jan 2018 18:45:45 +0000</created>
                <updated>Tue, 16 Jan 2018 15:14:53 +0000</updated>
                            <resolved>Tue, 16 Jan 2018 15:14:53 +0000</resolved>
                                                                    <component>Upgrade/Downgrade</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="1770959" author="schwerin" created="Wed, 10 Jan 2018 23:18:12 +0000"  >&lt;p&gt;The proposed implementation is error prone. You&apos;ll have to decide whether to count hidden node&apos;s, arbiters, etc. Any mistake could crash N-1 nodes in the set.&lt;/p&gt;

&lt;p&gt;I usually avoid crashing if waiting might change my situation. mongo, for example, doesn&apos;t crash if it cannot reach a config server, because that saves operators from having to start nodes in a certain order.&lt;/p&gt;

&lt;p&gt;It seems risky, it seems like it needs a lot of testing, and so I&apos;d like to know if we have to.&lt;/p&gt;</comment>
                            <comment id="1770953" author="maria.vankeulen" created="Wed, 10 Jan 2018 23:12:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=schwerin&quot; class=&quot;user-hover&quot; rel=&quot;schwerin&quot;&gt;schwerin&lt;/a&gt; I believe it is a usability improvement to cause an isolated node to crash rather than letting it continuously spin on the IncompatibleServerVersion error, since crashing the node makes the error more evident and the user would have to shut down the node anyway to swap out the binary. What sorts of unintended consequences did you have in mind?&lt;/p&gt;</comment>
                            <comment id="1770919" author="schwerin" created="Wed, 10 Jan 2018 22:54:02 +0000"  >&lt;p&gt;I think this could have unintended consequences. Is it really necessary?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="389593">SERVER-29428</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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>Wed, 10 Jan 2018 22:54:02 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 5 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>ian@mongodb.com</customfieldvalue>

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

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

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