<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:26: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>[DRIVERS-2764] Errata in pseudo code for retryable reads specification</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2764</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;div class=&quot;panel&quot; style=&quot;background-color: #fafbfc;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelContent&quot; style=&quot;background-color: #fafbfc;&quot;&gt;
&lt;h3&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;What is the problem or use case, what are we trying to achieve?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It has been discovered that the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/d1157f7e135b5a98c50a1cc342597a0905a99a58/source/retryable-reads/retryable-reads.rst#pseudocode&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;pseudo-code&lt;/a&gt; provided in the documentation for the retryable reads is not aligned with the specified behavior of prose specification.&lt;/p&gt;

&lt;p&gt;The specified prose specification behavior, in short, is as follows:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;If the initial request fails, a retry attempt is initiated.&lt;/li&gt;
	&lt;li&gt;If this second attempt fails, we verify if CSOT is enabled, and subsequently perform another, second attempt. In case CSOT is not enabled, an error is expected to be thrown.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;However, the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/d1157f7e135b5a98c50a1cc342597a0905a99a58/source/retryable-reads/retryable-reads.rst#pseudocode&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;pseudo-code&lt;/a&gt; within the specification suggests a different approach. It currently demonstrates only one &lt;b&gt;&lt;tt&gt;executeCommand&lt;/tt&gt;&lt;/b&gt; followed by a timeout check leading to indefinite number of attempts if CSOT is not enabled.&lt;/p&gt;

&lt;p&gt;This situation appears to be similar to what was previously addressed in the retryable writes specifications &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2695&quot; title=&quot;Errata in pseudo code for retryable writes specification&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2695&quot;&gt;&lt;del&gt;DRIVERS-2695&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;/h3&gt;
&lt;h4&gt;&lt;a name=&quot;Whoistheaffectedenduser%3F&quot;&gt;&lt;/a&gt;Who is the affected end user?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Who are the stakeholders?&lt;/em&gt;&lt;br/&gt;
This affects the readers of the specification because the pseudo code disagrees with the prose spec.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howdoesthisaffecttheenduser%3F&quot;&gt;&lt;/a&gt;How does this affect the end user?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Are they blocked? Are they annoyed? Are they confused?&lt;/em&gt;&lt;br/&gt;
This is not a blocker &#8211; rather a point of confusion.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Howlikelyisitthatthisproblemorusecasewilloccur%3F&quot;&gt;&lt;/a&gt;How likely is it that this problem or use case will occur?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Main path? Edge case?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This problem will only occur for driver developers who are very closely inspecting the specification, perhaps during implementation or when debugging this path in a driver.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Iftheproblemdoesoccur%2Cwhataretheconsequencesandhowseverearethey%3F&quot;&gt;&lt;/a&gt;If the problem does occur, what are the consequences and how severe are they?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can&apos;t complete?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Worst case scenario is inconsistencies in how drivers handle retryable reads due to ambiguities in the pseudo code for the specification.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisissueurgent%3F&quot;&gt;&lt;/a&gt;Is this issue urgent?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Does this ticket have a required timeline? What is it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Not urgent, no timeline.&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketrequiredbyadownstreamteam%3F&quot;&gt;&lt;/a&gt;Is this ticket required by a downstream team?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Needed by e.g. Atlas, Shell, Compass?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;Isthisticketonlyfortests%3F&quot;&gt;&lt;/a&gt;Is this ticket only for tests?&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;Does this ticket have any functional impact, or is it just test improvements?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No, just the specification pseudo code.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;AcceptanceCriteria&quot;&gt;&lt;/a&gt;&lt;b&gt;Acceptance Criteria&lt;/b&gt;&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;What specific requirements must be met to consider the design phase complete?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The prose spec and the pseudo code spec need to logically agree with each other.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="2492068">DRIVERS-2764</key>
            <summary>Errata in pseudo code for retryable reads specification</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="shane.harvey@mongodb.com">Shane Harvey</assignee>
                                    <reporter username="slav.babanin@mongodb.com">Slav Babanin</reporter>
                        <labels>
                    </labels>
                <created>Mon, 6 Nov 2023 20:35:17 +0000</created>
                <updated>Wed, 8 Nov 2023 21:03:37 +0000</updated>
                            <resolved>Wed, 8 Nov 2023 21:03:37 +0000</resolved>
                                                        <component>CSOT</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="5865757" author="xgen-internal-githook" created="Wed, 8 Nov 2023 21:03:27 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Shane Harvey&apos;, &apos;email&apos;: &apos;shnhrv@gmail.com&apos;, &apos;username&apos;: &apos;ShaneHarvey&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2764&quot; title=&quot;Errata in pseudo code for retryable reads specification&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2764&quot;&gt;&lt;del&gt;DRIVERS-2764&lt;/del&gt;&lt;/a&gt; Fix error in retryable read pusedocode when CSOT is not enabled (#1472)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/022fbf64fb36c80b9295ba93acec150c94362767&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/022fbf64fb36c80b9295ba93acec150c94362767&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5861939" author="shane.harvey" created="Tue, 7 Nov 2023 20:23:58 +0000"  >&lt;p&gt;PR: &lt;a href=&quot;https://github.com/mongodb/specifications/pull/1472&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/pull/1472&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2420024">DRIVERS-2695</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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="10940"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2gxec:</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>Tue, 7 Nov 2023 00:00:00 +0000</customfieldvalue>

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