<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:33:39 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-33517] Take the oplog collection lock when updating the FCV document</title>
                <link>https://jira.mongodb.org/browse/SERVER-33517</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This is necessary in order to prevent last-stable binary secondaries from seeing the FCV document change in the oplog collection BEFORE the primary bumps its internal wire version min and closes incoming connections with last-stable binaries. That would cause the last-stable binary secondary to crash.&lt;/p&gt;

&lt;p&gt;For example, if a v3.6 secondary obtains the 4.0 FCV value from the v4.0 binary primary&apos;s oplog, it will invariant and crash on seeing a BadValue: it only accepts 3.4 and 3.6 FCV field values.&lt;/p&gt;

&lt;p&gt;See the linked BF for further elaboration on HOW the secondary manages to acquire the oplog entry.&lt;/p&gt;</description>
                <environment></environment>
        <key id="502997">SERVER-33517</key>
            <summary>Take the oplog collection lock when updating the FCV document</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="dianna.hohensee@mongodb.com">Dianna Hohensee</assignee>
                                    <reporter username="dianna.hohensee@mongodb.com">Dianna Hohensee</reporter>
                        <labels>
                    </labels>
                <created>Tue, 27 Feb 2018 16:41:56 +0000</created>
                <updated>Wed, 28 Feb 2018 20:32:43 +0000</updated>
                            <resolved>Wed, 28 Feb 2018 20:32:34 +0000</resolved>
                                                                    <component>Storage</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="1819062" author="dianna.hohensee" created="Wed, 28 Feb 2018 20:32:34 +0000"  >&lt;p&gt;Closing this as Won&apos;t Fix. Created &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-33552&quot; title=&quot;Halt replication on last-stable secondary before FCV upgrade on latest binary primary in set_feature_compatibility_version.js&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-33552&quot;&gt;&lt;del&gt;SERVER-33552&lt;/del&gt;&lt;/a&gt; to modify the test so that it stops failing.&lt;/p&gt;</comment>
                            <comment id="1817994" author="schwerin" created="Wed, 28 Feb 2018 01:24:05 +0000"  >&lt;p&gt;Yeah, I guess what I want to indicate is that we don&apos;t have to have perfect&lt;br/&gt;
behavior here. While we&apos;d prefer the last-stable node to stay up, it&apos;s not&lt;br/&gt;
worth adding a lot of risk or complexity to the server. As such, it would&lt;br/&gt;
also be reasonable to change the tests to not fail in these scenarios.&lt;/p&gt;

&lt;p&gt;On Tue, Feb 27, 2018, 8:18 PM Dianna Hohensee (JIRA) &amp;lt;jira@mongodb.org&amp;gt;&lt;/p&gt;
</comment>
                            <comment id="1817977" author="dianna.hohensee" created="Wed, 28 Feb 2018 01:17:39 +0000"  >&lt;p&gt;I also perhaps didn&apos;t state it clearly in the description that it is a race whether the old binary secondary will crash, and rarely happens: the test covering this scenario has only failed twice.&lt;/p&gt;</comment>
                            <comment id="1817972" author="dianna.hohensee" created="Wed, 28 Feb 2018 01:05:28 +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 can&apos;t tell from your comment whether you are for or against the change proposed by this ticket.&lt;/p&gt;

&lt;p&gt;Replication decided against crashing last-stable binary replica set members on latest binary featureCompatibilityVersion upgrade. A concern was potentially wiping out all your secondaries, and destroying availability unnecessarily &amp;#8211; they could still service reads, if unable to communicate with the primary. I think this was their reasoning, anyway.&lt;/p&gt;

&lt;p&gt;Such a framework was originally requested in the 4.0 upgrade/downgrade scope, but was later removed.&lt;/p&gt;</comment>
                            <comment id="1817954" author="schwerin" created="Wed, 28 Feb 2018 00:32:50 +0000"  >&lt;p&gt;Is this a case we need to cover? A secondary running an old binary version crashed when it saw the new fcv during an incorrectly exexuted upgrade. Seems acceptable.&lt;/p&gt;</comment>
                            <comment id="1817363" author="milkie" created="Tue, 27 Feb 2018 16:55:07 +0000"  >&lt;p&gt;You cannot take a lower level lock without acquiring everything above it: that is the lock hierarchy rule. You can take the local db lock in IX. &lt;br/&gt;
Taking multiple db locks might result in a deadlock; you might have to use lock timeouts in order to avoid a full deadlock. &lt;/p&gt;</comment>
                            <comment id="1817356" author="dianna.hohensee" created="Tue, 27 Feb 2018 16:48:15 +0000"  >&lt;p&gt;Just adding the &quot;local.oplog.rs&quot; collection lock in X, I believe. No need to take the &quot;local&quot; database lock in X.&lt;/p&gt;

&lt;p&gt;I need to block any waiting secondaries from reading the oplog entries until after onCommit changes run and close the last-stable binary connections.&lt;/p&gt;</comment>
                            <comment id="1817351" author="dianna.hohensee" created="Tue, 27 Feb 2018 16:46:20 +0000"  >&lt;p&gt;Remove the stop replication code from jstests/multiVersion/feature_compatibility_version_lagging_secondary.js along with this commit, as it will no longer be necessary to protect the secondary from crashing.&lt;/p&gt;</comment>
                            <comment id="1817350" author="milkie" created="Tue, 27 Feb 2018 16:46:07 +0000"  >&lt;p&gt;Updating the FCV document currently requires the following locks:&lt;br/&gt;
Global lock in IX&lt;br/&gt;
&quot;admin&quot; db lock in IX&lt;br/&gt;
&quot;admin.system.version&quot; collection lock in IX&lt;/p&gt;

&lt;p&gt;You are proposing to also add the following:&lt;br/&gt;
&quot;local&quot; db lock in X &amp;#40;?&amp;#41;&lt;br/&gt;
&quot;local.oplog.rs&quot; collection lock in ... X?&lt;/p&gt;

&lt;p&gt;Is this correct?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="503710">SERVER-33552</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>9.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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 27 Feb 2018 16:46:07 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 50 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11.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>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>dianna.hohensee@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htr8yf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htinjz:</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="2202">Storage NYC 2018-03-12</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|htqv4n:</customfieldvalue>

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