<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:51:22 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-39213] Mongos does not wait for cluster time signing keys during startup</title>
                <link>https://jira.mongodb.org/browse/SERVER-39213</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30249&quot; title=&quot;Mongos does not  attach operationTime to the results if the keys are not available&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30249&quot;&gt;&lt;del&gt;SERVER-30249&lt;/del&gt;&lt;/a&gt; made mongos block during startup until it receives the keys used to sign cluster times from the config server, because it won&apos;t gossip $clusterTime to clients without them. This is skipped if the &lt;a href=&quot;https://github.com/mongodb/mongo/blob/cb7c8ceba4/src/mongo/s/server.cpp#L148-L149&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;max wire version of mongos&apos;s RSM for the CSRS is less than the OP_MSG wire version or if the CSRS RSM&apos;s min and max wire version are different&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It seems the second part of this check was to avoid waiting on keys when the CSRS was in FCV 3.4, but it consistently fails in master (not 4.0 or 3.6) so mongos skips waiting for keys. This means mongos is not guaranteed to gossip $clusterTime and provide causal consistency immediately after starting up, although it will as soon as it receives keys from the config sever, which normally happens quickly.&lt;/p&gt;</description>
                <environment></environment>
        <key id="678333">SERVER-39213</key>
            <summary>Mongos does not wait for cluster time signing keys during startup</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="13201">Fixed</resolution>
                                        <assignee username="misha.tyulenev@mongodb.com">Misha Tyulenev</assignee>
                                    <reporter username="jack.mulrow@mongodb.com">Jack Mulrow</reporter>
                        <labels>
                            <label>sharding-wfbf-day</label>
                    </labels>
                <created>Fri, 25 Jan 2019 23:19:12 +0000</created>
                <updated>Sun, 29 Oct 2023 22:24:44 +0000</updated>
                            <resolved>Wed, 10 Apr 2019 20:02:08 +0000</resolved>
                                                    <fixVersion>4.1.11</fixVersion>
                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="2209045" author="luke.chen" created="Thu, 11 Apr 2019 01:41:16 +0000"  >&lt;p&gt;Fixing up the fixVersion as this ticket was not included as part of 4.1.10 release.&lt;/p&gt;</comment>
                            <comment id="2208711" author="xgen-internal-githook" created="Wed, 10 Apr 2019 19:59:22 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;misha@mongodb.com&apos;, &apos;name&apos;: &apos;Misha Tyulenev&apos;, &apos;username&apos;: &apos;mikety&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-39213&quot; title=&quot;Mongos does not wait for cluster time signing keys during startup&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-39213&quot;&gt;&lt;del&gt;SERVER-39213&lt;/del&gt;&lt;/a&gt; remove mongosWaitsForKeys from shardingtest&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0bbed4c98ce45ee4ecca1675222abd6b7cdb67e9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0bbed4c98ce45ee4ecca1675222abd6b7cdb67e9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2188163" author="jack.mulrow" created="Thu, 21 Mar 2019 23:04:21 +0000"  >&lt;p&gt;Takeaways from further investigation on the impacts of this behavior:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;If mongos starts up without keys, it will not include cluster time metadata in any response (i.e. $clusterTime or operationTime) until it asynchronously discovers keys through a background thread. The thread refreshes every 200ms w/ linear backoff until keys are found w/ a max interval of 10 minutes, so in normal operation this period should be short.&#160;I&apos;m not positive how a driver handles responses without clusterTime metadata, but given this has been the behavior in master for some time, it doesn&apos;t seem to have broken any driver tests.&lt;/li&gt;
	&lt;li&gt;With auth on, I don&apos;t believe conforming drivers shouldn&apos;t experience any causal consistency violations, because either the driver has not received valid clusterTime metadata and cannot perform afterClusterTime reads, or it has received metadata from another mongos, which will be rejected by the mongos w/o keys because it cannot validate the proof included with $clusterTime.&lt;/li&gt;
	&lt;li&gt;With auth off, however, I think it &lt;b&gt;is&lt;/b&gt;&#160;possible to violate causal consistency because mongos does &lt;a href=&quot;https://github.com/mongodb/mongo/blob/8ee07239029c39d6b2bfdc1c75b870333c6cb806/src/mongo/s/commands/strategy.cpp#L132&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;not return clusterTime metadata without keys&lt;/a&gt;, but &lt;a href=&quot;https://github.com/mongodb/mongo/blob/8ee07239029c39d6b2bfdc1c75b870333c6cb806/src/mongo/s/commands/strategy.cpp#L116&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;skips validating proofs with received clusterTimes&lt;/a&gt;. So a mongos that has received valid clusterTimes at some point may perform a write against the mongos w/o keys, receive no new clusterTimes, then perform a read using the stale metadata, which will not reflect the earlier write.&lt;/li&gt;
	&lt;li&gt;Without waiting for keys, it&apos;s unlikely we&apos;ll discover bugs with key generation / rotation, because of the &quot;mongosWaitsForKeys&quot; parameter in ShardingTest, which was added before it was decided mongos should wait for keys at startup and masked this bug by waiting for mongos to return keys in the ShardingTest constructor. If we do this ticket, I&apos;d recommend removing that parameter as well.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </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_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_13552" key="com.go2group.jira.plugin.crm:crm_generic_field">
                        <customfieldname>Case</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[[5002K00000sdz5TQAQ]]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 10 Apr 2019 19:59:22 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        4 years, 44 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>
                            4 years, 44 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.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>jack.mulrow@mongodb.com</customfieldvalue>
            <customfieldvalue>luke.chen@mongodb.com</customfieldvalue>
            <customfieldvalue>misha.tyulenev@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hukavr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hudipz:</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="2863">Sharding 2019-04-08</customfieldvalue>
    <customfieldvalue id="2864">Sharding 2019-04-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|hujx53:</customfieldvalue>

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