<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:43:13 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-36478] The setFCV command should respect a user-provided wtimeout</title>
                <link>https://jira.mongodb.org/browse/SERVER-36478</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In 4.2,&#160;&lt;tt&gt;setFeatureCompatibilityVersion&lt;/tt&gt; command is a chain of operations including the the FCV document update operation and the collMod operations for unique index upgrade. Each of these individual operation within setFCV has its own writeConcern without dependancy on the others. It is required to define a clear dependancy between setFCV and the other operations within setFCV.&lt;/p&gt;

&lt;p&gt;One example is, setFCV with user supplied writeConcern timeout should propagate this timeout to the writeConcern of collMod operation for unique index upgrade.&lt;/p&gt;</description>
                <environment></environment>
        <key id="584634">SERVER-36478</key>
            <summary>The setFCV command should respect a user-provided wtimeout</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="13201">Fixed</resolution>
                                        <assignee username="louis.williams@mongodb.com">Louis Williams</assignee>
                                    <reporter username="neha.khatri">Neha Khatri</reporter>
                        <labels>
                            <label>nyc</label>
                    </labels>
                <created>Mon, 6 Aug 2018 23:53:10 +0000</created>
                <updated>Sun, 29 Oct 2023 22:29:13 +0000</updated>
                            <resolved>Wed, 10 Oct 2018 19:26:38 +0000</resolved>
                                                    <fixVersion>4.1.4</fixVersion>
                                    <component>Replication</component>
                    <component>Storage</component>
                    <component>Upgrade/Downgrade</component>
                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="2029390" author="xgen-internal-githook" created="Wed, 10 Oct 2018 19:26:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Louis Williams&apos;, &apos;email&apos;: &apos;louis.williams@mongodb.com&apos;, &apos;username&apos;: &apos;louiswilliams&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-36478&quot; title=&quot;The setFCV command should respect a user-provided wtimeout&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-36478&quot;&gt;&lt;del&gt;SERVER-36478&lt;/del&gt;&lt;/a&gt; Use user-provided wtimeout for setFCV command&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/796d1d15226e546485d356f1c41d94e8d11281ca&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/796d1d15226e546485d356f1c41d94e8d11281ca&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1988675" author="milkie" created="Wed, 29 Aug 2018 13:07:22 +0000"  >&lt;p&gt;My decision is that we should use the user-provided timeout for all write concern waits throughout a setFCV command, and that we should continue to honor the user&apos;s requested write concern at the conclusion of the setFCV command, as we currently do today.  We should also change the behavior of the setFCV command so that it returns ok:false if a write concern timeout occurs during the run of the command.&lt;/p&gt;</comment>
                            <comment id="1984794" author="ian@10gen.com" created="Fri, 24 Aug 2018 14:09:30 +0000"  >&lt;p&gt;Assigning to Eric in the next sprint to discuss with others and make a decision on whether we want to stop setFCV from taking a writeconcern timeout or propagate the writeconcern error as Judah suggests.&lt;/p&gt;</comment>
                            <comment id="1978701" author="ian@10gen.com" created="Fri, 17 Aug 2018 14:22:46 +0000"  >&lt;p&gt;Discussed in NYC triage meeting but there&apos;s still some discussion about what&apos;s involved here.  Leaving for further discussion when &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=milkie&quot; class=&quot;user-hover&quot; rel=&quot;milkie&quot;&gt;milkie&lt;/a&gt; is back.&lt;/p&gt;</comment>
                            <comment id="1978298" author="alexander.gorrod" created="Fri, 17 Aug 2018 00:20:05 +0000"  >&lt;p&gt;The storage engines team did triage this, but decided to leave it for New York. We believe we know what work is required - so it&apos;s a matter of deciding about scheduling now.&lt;/p&gt;</comment>
                            <comment id="1970430" author="judah.schvimer" created="Wed, 8 Aug 2018 15:54:24 +0000"  >&lt;p&gt;We&apos;ve had different versions of this discussion over the years. Other relevant tickets include &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31528&quot; title=&quot;setFeatureCompatibilityVersion should accept a write concern&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31528&quot;&gt;&lt;del&gt;SERVER-31528&lt;/del&gt;&lt;/a&gt; when the replication team decided setFCV should not accept a write concern, and then &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31866&quot; title=&quot;setFCV should wait for majority commit if local read shows that all sharded collections have UUIDs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31866&quot;&gt;&lt;del&gt;SERVER-31866&lt;/del&gt;&lt;/a&gt; when the sharding team made the opposite decision for retryability and used the user provided wtimeout at the end of the command, but not throughout. &lt;/p&gt;

&lt;p&gt;With that context, it seems reasonable to me that setFCV would propagate the user provided wtimeout throughout all write concern waits. That being said, right now WriteConcernErrors are not the same as command errors. Since we currently claim that once setFCV returns success the upgrade is durable, it feels important to me that any WriteConcernError is upgraded to a command error (there may currently be a bug here in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-31866&quot; title=&quot;setFCV should wait for majority commit if local read shows that all sharded collections have UUIDs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-31866&quot;&gt;&lt;del&gt;SERVER-31866&lt;/del&gt;&lt;/a&gt; for setFCV retryability).&lt;/p&gt;</comment>
                            <comment id="1970295" author="benety.goh" created="Wed, 8 Aug 2018 14:43:58 +0000"  >&lt;p&gt;We should get some input from &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt; and &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="1969899" author="neha.khatri" created="Wed, 8 Aug 2018 03:06:19 +0000"  >&lt;p&gt;Conversation from email:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=neha.khatri&quot; class=&quot;user-hover&quot; rel=&quot;neha.khatri&quot;&gt;neha.khatri&lt;/a&gt; said:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I am working on &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34839&quot; title=&quot;Add a test to ensure writeConcern=majority waits are honored on unique index upgrade&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-34839&quot;&gt;SERVER-34839&lt;/a&gt; which is about ensuring that collMod&apos;s writeConcern=majority waits are honored during fCV upgrade. So it is expected that if the upgrade collMod command fails due to writrConcern Timeout then setFCV should also timeout.&#160;&lt;br/&gt;
 &#160;&lt;br/&gt;
 I had a discussion about this test with Maria and Alex. During that discussion we discovered that upgrade collMod command can never timeout because its writeConcern&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/3f08a905c17b6d68201b5ddbdaf5b62e26c99b30/src/mongo/db/catalog/coll_mod.cpp#L590&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;timeout&lt;/a&gt;&#160;is INT_ MAX. Whereas the writeConcern of setFCV is configurable. Also, the FCV document update has its own&#160;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/3f08a905c17b6d68201b5ddbdaf5b62e26c99b30/src/mongo/db/commands/feature_compatibility_version.cpp#L241&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;writeConcern&lt;/a&gt;. So we started wondering if that is correct. setFCV and the commands within it are not maintaining any consistency for the respective writeConcerns.&lt;br/&gt;
 &#160;&lt;br/&gt;
 With your experience in replication, we would like you to help us draw out this dependency chain and define the ideal writeConcern behaviour for setFCV.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=benety.goh&quot; class=&quot;user-hover&quot; rel=&quot;benety.goh&quot;&gt;benety.goh&lt;/a&gt; replied:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;This sounds like the same class of problems raised in:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-34776&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://jira.mongodb.org/browse/SERVER-34776&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Perhaps this is best discussed in a Needs Triage SERVER ticket.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="539004">SERVER-34839</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1904458">DOCS-14888</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>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</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, 8 Aug 2018 14:43:58 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            5 years, 18 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>alexander.gorrod@mongodb.com</customfieldvalue>
            <customfieldvalue>benety.goh@mongodb.com</customfieldvalue>
            <customfieldvalue>milkie@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>ian@mongodb.com</customfieldvalue>
            <customfieldvalue>judah.schvimer@mongodb.com</customfieldvalue>
            <customfieldvalue>louis.williams@mongodb.com</customfieldvalue>
            <customfieldvalue>neha.khatri</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hu4vb3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htzio7:</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="2519">Storage NYC 2018-10-08</customfieldvalue>
    <customfieldvalue id="2586">Storage NYC 2018-10-22</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|hu4hkf:</customfieldvalue>

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