<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:15:18 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-47810] Resume token returned by mongoS can be earlier than user-specified resume point</title>
                <link>https://jira.mongodb.org/browse/SERVER-47810</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In cases where a resume token or starting time is specified when opening a change stream, the &lt;tt&gt;postBatchResumeToken&lt;/tt&gt; returned with the first batch must always be at least equal to the specified resume point, even if the batch itself is empty. However, if the user opens a change stream on &lt;tt&gt;mongoS&lt;/tt&gt; with a &lt;tt&gt;startAtOperationTime&lt;/tt&gt; at a point in the future (which is perfectly legal), then the stream will return high-water-mark PBRTs that reflect the current &lt;tt&gt;clusterTime&lt;/tt&gt; rather than waiting until the &lt;tt&gt;clusterTime&lt;/tt&gt; exceeds &lt;tt&gt;startAtOperationTime&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1330430">SERVER-47810</key>
            <summary>Resume token returned by mongoS can be earlier than user-specified resume point</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="bernard.gorman@mongodb.com">Bernard Gorman</assignee>
                                    <reporter username="bernard.gorman@mongodb.com">Bernard Gorman</reporter>
                        <labels>
                            <label>qexec-team</label>
                    </labels>
                <created>Mon, 27 Apr 2020 20:46:22 +0000</created>
                <updated>Sun, 29 Oct 2023 22:08:58 +0000</updated>
                            <resolved>Fri, 22 May 2020 10:58:47 +0000</resolved>
                                                    <fixVersion>4.4.0-rc8</fixVersion>
                    <fixVersion>4.7.0</fixVersion>
                                    <component>Aggregation Framework</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="3142244" author="xgen-internal-githook" created="Fri, 29 May 2020 09:35:23 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Bernard Gorman&apos;, &apos;email&apos;: &apos;bernard.gorman@gmail.com&apos;, &apos;username&apos;: &apos;gormanb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47810&quot; title=&quot;Resume token returned by mongoS can be earlier than user-specified resume point&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47810&quot;&gt;&lt;del&gt;SERVER-47810&lt;/del&gt;&lt;/a&gt; Make $changeStream shard-monitor cursor ineligible to contribute high water marks&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 35756d5b0fe1bc810de1d740950b2fa41e449bdd)&lt;br/&gt;
Branch: v4.4&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3da789cfbfd211ecc26ed780db14695ee54f14a9&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3da789cfbfd211ecc26ed780db14695ee54f14a9&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3104097" author="xgen-internal-githook" created="Fri, 22 May 2020 10:34:02 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Bernard Gorman&apos;, &apos;email&apos;: &apos;bernard.gorman@gmail.com&apos;, &apos;username&apos;: &apos;gormanb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47810&quot; title=&quot;Resume token returned by mongoS can be earlier than user-specified resume point&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47810&quot;&gt;&lt;del&gt;SERVER-47810&lt;/del&gt;&lt;/a&gt; Make $changeStream shard-monitor cursor ineligible to contribute high water marks&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/35756d5b0fe1bc810de1d740950b2fa41e449bdd&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/35756d5b0fe1bc810de1d740950b2fa41e449bdd&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3083619" author="bernard.gorman" created="Wed, 13 May 2020 16:14:40 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=charlie.swanson&quot; class=&quot;user-hover&quot; rel=&quot;charlie.swanson&quot;&gt;charlie.swanson&lt;/a&gt;: yep, this looks accurate to me.&lt;/p&gt;</comment>
                            <comment id="3083541" author="charlie.swanson" created="Wed, 13 May 2020 15:41:17 +0000"  >&lt;p&gt;As part of working on this, we discovered another special case for the change stream&apos;s cursor on the config server. That cursor may occasionally return &quot;addShard&quot; events which the change stream uses to keep the stream open on all shards. The event is swallowed internally and not returned to the user. Such an event should be prevented from becoming the high water mark. We decided this because:&lt;/p&gt;

&lt;p&gt;1) The resume token for this event is a &quot;real&quot; token, meaning it&apos;s not a manufactured high water mark token and we can expect to find it in an oplog. Our logic for resuming the stream will expect to see the event again to make sure we can resume.&#160;&lt;/p&gt;

&lt;p&gt;2) Given the current order of checking for resume and checking for addShard, the resume token check would never see the event and would fail.&lt;/p&gt;

&lt;p&gt;3) If we instead flipped that order, then in order to successfully resume you need to be sure to read that event from the config servers. This would cause problems because&lt;/p&gt;

&lt;p&gt;&#160; &#160;(a) The window of history on the config server may be small and ideally shouldn&apos;t be a factor in whether you can successfully resume a stream.&lt;/p&gt;

&lt;p&gt;&#160; &#160;(b) The cursor we open on the config servers is usually opened at a &quot;recent&quot; clusterTime, ignoring the resume token. The stream is only there to detect new shards, so otherwise doesn&apos;t need to go back and read old history. Determining the correct time to open the cursor on the config servers is already difficult to get right; we don&apos;t want to complicate it further.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=bernard.gorman&quot; class=&quot;user-hover&quot; rel=&quot;bernard.gorman&quot;&gt;bernard.gorman&lt;/a&gt;&#160;does the above accurately reflect our conversation?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </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>3.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="18953"><![CDATA[v4.4]]></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, 13 May 2020 15:41:17 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 36 weeks, 5 days 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 36 weeks, 5 days 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>bernard.gorman@mongodb.com</customfieldvalue>
            <customfieldvalue>charlie.swanson@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hxhx7r:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hx31yf:</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="3499">Query 2020-05-04</customfieldvalue>
    <customfieldvalue id="3500">Query 2020-05-18</customfieldvalue>
    <customfieldvalue id="3501">Query 2020-06-01</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|hxhjh3:</customfieldvalue>

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