<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:22:38 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>[DRIVERS-942] Consider resuming on aggregate for change streams</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-942</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-45505&quot; title=&quot;Add ResumableChangeStreamError error label&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-45505&quot;&gt;&lt;del&gt;SERVER-45505&lt;/del&gt;&lt;/a&gt; adds a &lt;tt&gt;ResumableChangeStreamError&lt;/tt&gt; label, which can be included on both aggregate and getMore command responses. The change stream spec says all errors on aggregate are considered fatal. Would it be possible for drivers to instead have a mechanism to resume aggregate attempts if the event of a transient error that has the new error label?&lt;/p&gt;</description>
                <environment></environment>
        <key id="1170487">DRIVERS-942</key>
            <summary>Consider resuming on aggregate for change streams</summary>
                <type id="14901" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14700&amp;avatarType=issuetype">Spec Change</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="12300">Won&apos;t Do</resolution>
                                        <assignee username="kyle.kloberdanz@mongodb.com">Kyle Kloberdanz</assignee>
                                    <reporter username="divjot.arora@mongodb.com">Divjot Arora</reporter>
                        <labels>
                            <label>jeff+</label>
                    </labels>
                <created>Fri, 21 Feb 2020 21:57:47 +0000</created>
                <updated>Fri, 12 Jan 2024 14:48:23 +0000</updated>
                            <resolved>Wed, 13 Dec 2023 14:45:42 +0000</resolved>
                                                        <component>Change Streams</component>
                    <component>Retryability</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="5947687" author="JIRAUSER1271575" created="Wed, 13 Dec 2023 14:45:10 +0000"  >&lt;p&gt;Closing as &quot;Won&apos;t Do&quot; for the following reason: Given that aggregate is &lt;a href=&quot;https://github.com/mongodb/specifications/blob/3df5b77/source/retryable-reads/retryable-reads.rst#supported-read-operations&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;already retryable&lt;/a&gt;, it doesn&apos;t seem to add much value to also make it resumable.&lt;/p&gt;

&lt;p&gt;A few ideas that we considered are below:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Add the ResumableChangeStreamError label to the criteria for retryable reads&lt;/li&gt;
	&lt;li&gt;Do not run the aggregate as a retryable read. Instead: resume the aggregate as is done for getMore.&lt;/li&gt;
&lt;/ol&gt;
</comment>
                            <comment id="3380654" author="prashant.mital" created="Tue, 8 Sep 2020 19:12:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=divjot.arora&quot; class=&quot;user-hover&quot; rel=&quot;divjot.arora&quot;&gt;divjot.arora&lt;/a&gt; and I propose in light of the above comments that we don&apos;t do this. Divjot noted that network errors often occur due to things like expired/invalid certs in which case we don&apos;t really want to retry the initial aggregate more so than retryable reads already does. If &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jeff.yemin&quot; class=&quot;user-hover&quot; rel=&quot;jeff.yemin&quot;&gt;jeff.yemin&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=shane.harvey&quot; class=&quot;user-hover&quot; rel=&quot;shane.harvey&quot;&gt;shane.harvey&lt;/a&gt; concur, we are happy to close this as Wont Do.&lt;/p&gt;</comment>
                            <comment id="3380611" author="shane.harvey" created="Tue, 8 Sep 2020 18:52:00 +0000"  >&lt;p&gt;To add some more context here: The initial aggregate command issued by watch() is already retryable according to the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/3df5b77/source/retryable-reads/retryable-reads.rst#supported-read-operations&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;retryable reads spec&lt;/a&gt;. For an example see &lt;a href=&quot;https://github.com/mongodb/specifications/blob/3df5b775c566ccb3400b94609508e96f4df8c03b/source/retryable-reads/tests/changeStreams-db.coll.watch.yml#L31&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the &quot;db.coll.watch succeeds on second attempt&quot; test&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2889915" author="jeff.yemin" created="Fri, 21 Feb 2020 23:01:23 +0000"  >&lt;p&gt;From a chat with &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;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I don&#8217;t think it&#8217;s hugely important, but the reasons that we auto-resume for a getMore are things like shard down, shard in mid-election, etc. All of those are reasons why an initial aggregate might also fail, and are equally transient. it might not make sense for an aggregate that&#8217;s establishing an entirely new stream, but the example I gave Divjot was where a customer is attempting to manually resume with an aggregate that has a resume token. In that case, it seems reasonable to auto-retry if we hit a transient exception.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2486962">CDRIVER-4750</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486965">CSHARP-4823</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486963">CXX-2773</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486966">GODRIVER-3028</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486967">JAVA-5222</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486969">MOTOR-1198</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486968">NODE-5716</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486971">PHPLIB-1293</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486970">PYTHON-4013</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486972">RUBY-3337</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2486973">RUST-1784</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10951" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Driver Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10748"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_23952" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Driver Compliance</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<style type='text/css'>
         #scriptField, #scriptField *{
                border: 1px solid black;
            }

            #scriptField{
                border-collapse: collapse;
            }

            #scriptField td {
                text-align: center; /* Center-align text in table cells */
            }

            #scriptField td.key {
                text-align: left; /* Left-align text in the Key column */
            }

            #scriptField a {
                text-decoration: none; /* Remove underlines from links */
                border: none; /* Remove border from links */
            }
            
            /* Add green background color to cells with FixVersion */
            #scriptField td.hasFixVersion {
                background-color: #00FF00; /* Green color code */
            }

            /* Center-align the first row headers */
            #scriptField th {
                text-align: center;
            }
        </style>
<table id='scriptField'>
  <tr>
    <th>Key</th>
    <th>Status/Resolution</th>
    <th>FixVersion</th>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CDRIVER-4750'>CDRIVER-4750</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2773'>CXX-2773</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-4823'>CSHARP-4823</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-3028'>GODRIVER-3028</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-5222'>JAVA-5222</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-5716'>NODE-5716</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-1198'>MOTOR-1198</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-4013'>PYTHON-4013</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPLIB-1293'>PHPLIB-1293</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-3337'>RUBY-3337</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUST-1784'>RUST-1784</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18362" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Engineering Lead</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>kevin.albertson@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY24Q4</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvwr13:</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_14261" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 30 Nov 2023 00:00:00 +0000</customfieldvalue>

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