<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:14:02 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-27053] Possibility to confirm w:majority write that has been rolled back</title>
                <link>https://jira.mongodb.org/browse/SERVER-27053</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;I think the following sequence of events will cause us to acknowlege a w:majority write that has been rolled back. It requires that the write comes from mongos so the flag to not drop the connection on stepdown has been set.&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;mongos sends a write to a shard with w:majority&lt;/li&gt;
	&lt;li&gt;write gets applied locally&lt;/li&gt;
	&lt;li&gt;a majority of secondaries vote for a new primary and it wins the election without the original primary knowing&lt;/li&gt;
	&lt;li&gt;the nodes that elected the new primary confirm the w:majority write to the old primary - the updatePosition command from those secondaries indicates a new term so the old primary steps down.  When stepping down we cancel all user operations and kill all non-internal connections, but the connection that issued this write came from a mongos so it isn&apos;t closed&lt;/li&gt;
	&lt;li&gt;the original primary and all the secondaries go into rollback and revert the write, and successfully replicate the new op that the new primary writes on election&lt;/li&gt;
	&lt;li&gt;the original primary is re-elected&lt;/li&gt;
	&lt;li&gt;the thread that issued the write on the original primary gets into awaitReplication(), sees that it is in state primary as exected and that the write it&apos;s waiting for has already been confirmed on a majority and returns success&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;If awaitReplication_inlock() checked for interrupt before checking if the write was already satisfied, then we&apos;d be okay since during stepdown we cancelled all running operations. But we don&apos;t ever check for interrupt in awaitReplication if the writeConcern is already satisfied by the time we reach awaitReplication().&lt;/p&gt;</description>
                <environment></environment>
        <key id="332107">SERVER-27053</key>
            <summary>Possibility to confirm w:majority write that has been rolled back</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.mongodb.org/images/icons/priorities/blocker.svg">Blocker - P1</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="spencer@mongodb.com">Spencer Brody</assignee>
                                    <reporter username="mathias@mongodb.com">Mathias Stearn</reporter>
                        <labels>
                            <label>code-and-test</label>
                    </labels>
                <created>Tue, 15 Nov 2016 21:40:43 +0000</created>
                <updated>Thu, 13 Apr 2017 20:39:12 +0000</updated>
                            <resolved>Thu, 17 Nov 2016 21:32:51 +0000</resolved>
                                                    <fixVersion>3.2.12</fixVersion>
                    <fixVersion>3.4.0-rc4</fixVersion>
                    <fixVersion>3.5.1</fixVersion>
                                    <component>Replication</component>
                                        <votes>0</votes>
                                    <watches>15</watches>
                                                                                                                <comments>
                            <comment id="1484566" author="xgen-internal-githook" created="Wed, 25 Jan 2017 01:29:07 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;benety&apos;, u&apos;name&apos;: u&apos;Benety Goh&apos;, u&apos;email&apos;: u&apos;benety@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27123&quot; title=&quot;Only update commit point via spanning tree&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27123&quot;&gt;&lt;del&gt;SERVER-27123&lt;/del&gt;&lt;/a&gt; Only update the commit point as a secondary from oplog queries against your sync source&lt;br/&gt;
(cherry picked from commit 87f49488f1b5c872daa71fd2fd9b5d744409a817)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27680&quot; title=&quot;Make bgsync check stopOplogFetcher failpoint before scheduling new OplogFetcher&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27680&quot;&gt;&lt;del&gt;SERVER-27680&lt;/del&gt;&lt;/a&gt; Merge stopOplogFetcher and pauseRsBgSyncProducer failpoint into single stopReplProducer failpoint&lt;br/&gt;
(cherry picked from commit 21948042b6da5fb5bf15897f9808a70551f5af09)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27053&quot; title=&quot;Possibility to confirm w:majority write that has been rolled back&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27053&quot;&gt;&lt;del&gt;SERVER-27053&lt;/del&gt;&lt;/a&gt; Don&apos;t acknowledge writes if the term has changed.&lt;br/&gt;
(cherry picked from commit 8347e322cd46e8ee847e1730a7e94ea8e3981c53)&lt;br/&gt;
Branch: v3.2&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4a6efad4d422b9a06ff0b7e98bfc9b7cc63b5864&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4a6efad4d422b9a06ff0b7e98bfc9b7cc63b5864&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1467267" author="spencer" created="Fri, 30 Dec 2016 22:14:02 +0000"  >&lt;p&gt;The bug in the description of this ticket doesn&apos;t apply to 3.2 since we close all connections on stepdown, there&apos;s no chance for the primary to step back up and then confirm a write from its old term.  Therefore I am cancelling the backport to 3.2 request on this ticket.&lt;/p&gt;

&lt;p&gt;The fix in the commit on this ticket however also fixed one bug not in the description - which is a heartbeat that indicates that the stale primary needs to step down also causes it to advance its commit point and acknowledge a write that can in fact be rolled back.  The fix for 3.2 for that bug comes from backporting &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27123&quot; title=&quot;Only update commit point via spanning tree&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27123&quot;&gt;&lt;del&gt;SERVER-27123&lt;/del&gt;&lt;/a&gt;.  When we backport &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27123&quot; title=&quot;Only update commit point via spanning tree&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27123&quot;&gt;&lt;del&gt;SERVER-27123&lt;/del&gt;&lt;/a&gt; we should also grab the &lt;a href=&quot;https://github.com/mongodb/mongo/commit/8347e322cd46e8ee847e1730a7e94ea8e3981c53#diff-131f487b3d65a574bf6a8a5508bc01abR1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;write_concern_after_stepdown.js&lt;/a&gt; test from the commit on this ticket, and include that with the backport&lt;/p&gt;</comment>
                            <comment id="1437130" author="xgen-internal-githook" created="Thu, 17 Nov 2016 22:40:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;stbrody&apos;, u&apos;name&apos;: u&apos;Spencer T Brody&apos;, u&apos;email&apos;: u&apos;spencer@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27053&quot; title=&quot;Possibility to confirm w:majority write that has been rolled back&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27053&quot;&gt;&lt;del&gt;SERVER-27053&lt;/del&gt;&lt;/a&gt; Don&apos;t acknowledge writes if the term has changed.&lt;/p&gt;

&lt;p&gt;(cherry picked from commit a557fd981d235f84d4a0865dc0bb6b5385fc7a21)&lt;br/&gt;
Branch: v3.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/c7ebfd0fd292e45256e9799a2a96ed6054ecc357&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/c7ebfd0fd292e45256e9799a2a96ed6054ecc357&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1437045" author="xgen-internal-githook" created="Thu, 17 Nov 2016 21:32:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;stbrody&apos;, u&apos;name&apos;: u&apos;Spencer T Brody&apos;, u&apos;email&apos;: u&apos;spencer@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-27053&quot; title=&quot;Possibility to confirm w:majority write that has been rolled back&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-27053&quot;&gt;&lt;del&gt;SERVER-27053&lt;/del&gt;&lt;/a&gt; Don&apos;t acknowledge writes if the term has changed.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8347e322cd46e8ee847e1730a7e94ea8e3981c53&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8347e322cd46e8ee847e1730a7e94ea8e3981c53&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="333474">SERVER-27149</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="333019">SERVER-27123</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>4.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_12451" key="com.atlassian.jira.plugin.system.customfieldtypes:multiversion">
                        <customfieldname>Backport Completed</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="17654">3.4.0-rc4</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, 16 Nov 2016 15:22:42 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 years, 3 weeks, 1 day 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_14262" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 17 Nov 2016 23:59:59 +0000</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>benety.goh@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 years, 3 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>mathias@mongodb.com</customfieldvalue>
            <customfieldvalue>spencer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrjqrz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsrx3z:</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="1310">Repl 2016-11-21</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 15 Nov 2016 00:00:00 +0000</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|hseck7:</customfieldvalue>

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