<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:22: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-30090] mongo shell may inject incompatible readConcern when causal consistency is on</title>
                <link>https://jira.mongodb.org/browse/SERVER-30090</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;There could be a conflict between afterClusterTime readConcern injected by shell or driver and internal checks if user wants to specify afterOpTime or different readConcern.&lt;br/&gt;
The shell code does not overwrite existsing attributes but does not check for invalid combinations either:&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/shell/mongo.js#L158-L163&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/shell/mongo.js#L158-L163&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1. A message can not have both afterClusterTime and afterOpTime - it will cause an error.&lt;br/&gt;
The check is done here: &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/db/repl/read_concern_args.cpp#L162-L167&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/db/repl/read_concern_args.cpp#L162-L167&lt;/a&gt;&lt;br/&gt;
which causes an error at some tests.&lt;/p&gt;

&lt;p&gt;2. A message can not have linearizable readConcern:&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/db/repl/read_concern_args.cpp#L169-L178&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/db/repl/read_concern_args.cpp#L169-L178&lt;/a&gt;&lt;br/&gt;
also breaks tests&lt;/p&gt;

&lt;p&gt;3. If clusterTime gets to the new unsharded cluster it may hit this error:&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/rpc/metadata.cpp#L107-L112&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/r3.5.11/src/mongo/rpc/metadata.cpp#L107-L112&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="402661">SERVER-30090</key>
            <summary>mongo shell may inject incompatible readConcern when causal consistency is on</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="13203">Gone away</resolution>
                                        <assignee username="misha.tyulenev@mongodb.com">Misha Tyulenev</assignee>
                                    <reporter username="misha.tyulenev@mongodb.com">Misha Tyulenev</reporter>
                        <labels>
                            <label>PM-221</label>
                    </labels>
                <created>Tue, 11 Jul 2017 16:40:37 +0000</created>
                <updated>Fri, 27 Oct 2023 20:44:00 +0000</updated>
                            <resolved>Fri, 24 May 2019 15:57:34 +0000</resolved>
                                                                    <component>Sharding</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="1654248" author="misha.tyulenev" created="Tue, 22 Aug 2017 19:25:27 +0000"  >&lt;p&gt;Re #2 it will not hurt to remove it - will do.&lt;/p&gt;

&lt;p&gt;Re #3 , sorry missed the question when it was posted, but Andy clarified. &lt;br/&gt;
there are several scenarios when mongo shell start talking to another session /connection and this causes all sorts of troubles. This will be settled once we have an agreement on drivers spec. Currently Mongo object does hold the current operationTime (&lt;a href=&quot;https://github.com/mongodb/mongo/blob/master/src/mongo/shell/mongo.js#L138&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/master/src/mongo/shell/mongo.js#L138&lt;/a&gt;)&lt;/p&gt;</comment>
                            <comment id="1653817" author="schwerin" created="Tue, 22 Aug 2017 14:25:35 +0000"  >&lt;p&gt;I believe that #3 is about a signed cluster time reaching a standalone replica set in the &quot;clusterTime&quot; field of a message. Standalone replica sets don&apos;t need and don&apos;t transmit cluster times, because the replica set primary maintains the true clock. So #3 should only happen when a shell connects to a sharded cluster, and then the same shell connects to a replica set. This is something tests might do but that users probably don&apos;t. In any event, I would think that if we attach the cluster time tracking to the Mongo object instead of making it a global variable in the shell, this problem would evaporate, possibly replaced by some other problem?&lt;/p&gt;

&lt;p&gt;RE #2, I agree that a user would probably like to be able to set both linearizable and causal. Perhaps we should just remove that check?&lt;/p&gt;</comment>
                            <comment id="1651600" author="spencer" created="Fri, 18 Aug 2017 17:14:03 +0000"  >&lt;p&gt;#1 seems fine, afterOpTime read concern was never a public feature anyway.&lt;br/&gt;
#2 seems a little bad, I can imagine a user wanting to set causal consistency mode all the time and still be able to occasionally do a linearizable read.&lt;br/&gt;
#3 I don&apos;t understand - causal consistency mode is supposed to work on unsharded replica sets.  If that doesn&apos;t work that seems like a major oversight, or am I misunderstanding the issue?&lt;/p&gt;</comment>
                    </comments>
                    <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>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 18 Aug 2017 17:14:03 +0000</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 25 weeks, 1 day ago
                        </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>misha.tyulenev@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|htaoin:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht2klj:</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="1728">Sharding 2017-08-21</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|htaalb:</customfieldvalue>

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