<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:25:45 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-2501] Break NoWritesPerformed-Only Error Sequence</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2501</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;In the &lt;a href=&quot;https://github.com/mongodb/specifications/blame/735a667672c758617821e3c5dda99c551e007375/source/retryable-writes/retryable-writes.rst&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;previous&lt;/a&gt; specification for executing retryable writes, there is an edge case where the server only returns errors with the &quot;NoWritesPerformed&quot; error label. If this happens, the following block is unreachable:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      if (originalError is not DriverException &amp;amp;&amp;amp; ! originalError.hasErrorLabel(&quot;NoWritesPerformed&quot;)) {&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;        previousError = originalError;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;      }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;In this case, the previousError that will be propagated to the user will be &quot;null&quot;. In reality, this routine should propagate the first NoWritesPerformed-labeled error.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2179878">DRIVERS-2501</key>
            <summary>Break NoWritesPerformed-Only Error Sequence</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</priority>
                        <status id="13453" iconUrl="https://jira.mongodb.org/images/icons/status_generic.gif" description="">Implementing</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="preston.vasquez@mongodb.com">Preston Vasquez</assignee>
                                    <reporter username="preston.vasquez@mongodb.com">Preston Vasquez</reporter>
                        <labels>
                            <label>retryable-writes</label>
                    </labels>
                <created>Wed, 9 Nov 2022 22:38:07 +0000</created>
                <updated>Mon, 5 Dec 2022 21:00:23 +0000</updated>
                                                                <component>Retryability</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="5031297" author="jeff.yemin" created="Mon, 5 Dec 2022 20:42:31 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=preston.vasquez%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;preston.vasquez@mongodb.com&quot;&gt;preston.vasquez@mongodb.com&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=julius.park%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;julius.park@mongodb.com&quot;&gt;julius.park@mongodb.com&lt;/a&gt; is it the case that a driver could pass the new test but still have the bug described by this issue, at least until &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2504&quot; title=&quot;Extend Retryable Writes &amp;quot;NoWritesPerformed&amp;quot; Test Coverage&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2504&quot;&gt;DRIVERS-2504&lt;/a&gt; is addressed?&lt;/p&gt;</comment>
                            <comment id="5025925" author="xgen-internal-githook" created="Fri, 2 Dec 2022 17:47:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Preston Vasquez&apos;, &apos;email&apos;: &apos;24281431+prestonvasquez@users.noreply.github.com&apos;, &apos;username&apos;: &apos;prestonvasquez&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2501&quot; title=&quot;Break NoWritesPerformed-Only Error Sequence&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2501&quot;&gt;DRIVERS-2501&lt;/a&gt; Break NoWritesPerformed-Only Error Sequence (#1349)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/specifications/commit/2051f3522390dd342f5bdd4703145eeb38cfd36f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/commit/2051f3522390dd342f5bdd4703145eeb38cfd36f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4991366" author="JIRAUSER1253561" created="Thu, 17 Nov 2022 21:41:45 +0000"  >&lt;p&gt;I believe we also need to add cases for some of the following cases:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;A NoWritesPerformed error, followed by a ServerSelectionTimeout&lt;/li&gt;
	&lt;li&gt;An ambiguous error, followed by a NoWritesPerformed error&lt;/li&gt;
	&lt;li&gt;A NoWritesPerformed error followed by an ambiguous error&lt;/li&gt;
	&lt;li&gt;Two NoWritesPerformed errors in a row&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;4 and 2 are implemented by the previous PR and this one, respectively.&#160;&lt;/p&gt;</comment>
                            <comment id="4985669" author="jmikola@gmail.com" created="Wed, 16 Nov 2022 04:40:32 +0000"  >&lt;p&gt;Cross-referencing with:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-2327&quot; title=&quot;Propagate Original Error for Write Errors Labeled NoWritesPerformed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-2327&quot;&gt;DRIVERS-2327&lt;/a&gt;, which introduced &quot;NoWritesPerformed&quot; to the spec in &lt;a href=&quot;https://github.com/mongodb/specifications/commit/e4a5564a157cd877b09b52cc467988eb44818021&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;e4a5564&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;DRIVERS-1807, which introduced the line cited in the OP in &lt;a href=&quot;https://github.com/mongodb/specifications/commit/343ff9a3864e7141c5a056fbf19e71ca57e65740&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;343ff9a&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=preston.vasquez%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;preston.vasquez@mongodb.com&quot;&gt;preston.vasquez@mongodb.com&lt;/a&gt;: Is this likely something that was missed during review in &lt;a href=&quot;https://github.com/mongodb/specifications/pull/1317&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb/specifications#1317&lt;/a&gt;? /cc &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=shane.harvey%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;shane.harvey@mongodb.com&quot;&gt;shane.harvey@mongodb.com&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="2179771">GODRIVER-2651</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                            <outwardlinks description="documents">
                                        <issuelink>
            <issuekey id="2189260">DRIVERS-2504</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2201018">CSHARP-4441</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201017">CXX-2619</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201026">RUST-1552</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201024">PHPLIB-1048</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201025">RUBY-3190</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201016">CDRIVER-4531</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201019">GODRIVER-2670</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201022">MOTOR-1071</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201021">NODE-4864</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201023">PYTHON-3535</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2201020">JAVA-4827</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="2179771">GODRIVER-2651</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2045420">DRIVERS-2327</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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;Drivers should sync unified retryable-writes spec tests to &lt;a href=&quot;https://github.com/mongodb/specifications/commit/2051f3522390dd342f5bdd4703145eeb38cfd36f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mongodb/specifications@2051f35&lt;/a&gt;.&lt;/p&gt;</customfieldvalue>

                        </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-4531'>CDRIVER-4531</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>1.24.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CXX-2619'>CXX-2619</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/CSHARP-4441'>CSHARP-4441</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/GODRIVER-2670'>GODRIVER-2670</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/JAVA-4827'>JAVA-4827</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>4.9.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/NODE-4864'>NODE-4864</a>
    </td>
    <td>Done</td>
    <td class='hasFixVersion'>5.4.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/MOTOR-1071'>MOTOR-1071</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PYTHON-3535'>PYTHON-3535</a>
    </td>
    <td>Duplicate</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/PHPLIB-1048'>PHPLIB-1048</a>
    </td>
    <td>Works as Designed</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUBY-3190'>RUBY-3190</a>
    </td>
    <td>Fixed</td>
    <td class='hasFixVersion'>2.19.0</td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/RUST-1552'>RUST-1552</a>
    </td>
    <td>Backlog</td>
    <td class=''></td>
  </tr>
  <tr>
    <td class='key'>
      <a href='https://jira.mongodb.org/browse/SWIFT-1683'>SWIFT-1683</a>
    </td>
    <td>Won't Do</td>
    <td class=''></td>
  </tr>
</table>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i108tc:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>