<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:24:51 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-2150] Add retryable write spec tests for batch split insert, update, and delete operations</title>
                <link>https://jira.mongodb.org/browse/DRIVERS-2150</link>
                <project id="10980" key="DRIVERS">Drivers</project>
                    <description>&lt;p&gt;There are currently no spec tests for batch split insert, update, or delete operations that ensure that on failure only the current and remaining batches are retried, not all of the batches.&lt;/p&gt;

&lt;p&gt;There is currently no fail point that can support these tests since the &lt;tt&gt;onPrimaryTransactionalWrite&lt;/tt&gt;&#160;fail point can accept either &lt;tt&gt;skip&lt;/tt&gt; or &lt;tt&gt;tries&lt;/tt&gt; but not both. So an update will need to be made to this fail point (or a new fail point introduced) that has this capability.&lt;/p&gt;</description>
                <environment></environment>
        <key id="714953">DRIVERS-2150</key>
            <summary>Add retryable write spec tests for batch split insert, update, and delete operations</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="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="kris.brandow@mongodb.com">Kristofer Brandow</reporter>
                        <labels>
                    </labels>
                <created>Mon, 11 Mar 2019 21:07:19 +0000</created>
                <updated>Thu, 31 Mar 2022 14:02:16 +0000</updated>
                                                                <component>Retryability</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="2178303" author="jmikola@gmail.com" created="Tue, 12 Mar 2019 14:28:35 +0000"  >&lt;blockquote&gt;&lt;p&gt;that section looks like it&#8217;s describing how the YAML tests work, not prose tests&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kris.brandow&quot; class=&quot;user-hover&quot; rel=&quot;kris.brandow&quot;&gt;kris.brandow&lt;/a&gt;: You&apos;re not mistaken. &lt;a href=&quot;https://github.com/mongodb/specifications/tree/master/source/retryable-writes/tests#split-batch-tests&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Split Batch Tests&lt;/a&gt; is describing a subtly  of &lt;tt&gt;onPrimaryTransactionalWrite&lt;/tt&gt; with &lt;tt&gt;insert&lt;/tt&gt; commands vs. &lt;tt&gt;update&lt;/tt&gt;/&lt;tt&gt;delete&lt;/tt&gt;. It states that YAML tests for bulk writes may split by command type and discusses how multi-statement writes might be split due to size factors; however, none of the YAML tests exercise those size boundaries.&lt;/p&gt;</comment>
                            <comment id="2177847" author="kris.brandow" created="Mon, 11 Mar 2019 22:45:25 +0000"  >&lt;p&gt;&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; that section looks like it&#8217;s describing how the YAML tests work, not prose tests. Am I missing something?&lt;/p&gt;

&lt;p&gt; &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=jmikola&quot; class=&quot;user-hover&quot; rel=&quot;jmikola&quot;&gt;jmikola&lt;/a&gt; I&#8217;ll take a look at failCommand and see if I can get it to do what I&#8217;m trying to test here.&lt;/p&gt;</comment>
                            <comment id="2177827" author="shane.harvey" created="Mon, 11 Mar 2019 22:26:50 +0000"  >&lt;p&gt;There are already prose tests for these cases described in the test readme here: &lt;a href=&quot;https://github.com/mongodb/specifications/tree/master/source/retryable-writes/tests#split-batch-tests&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/tree/master/source/retryable-writes/tests#split-batch-tests&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2177744" author="jmikola@gmail.com" created="Mon, 11 Mar 2019 21:36:30 +0000"  >&lt;p&gt;I acknowledge the desire for spec tests here, I don&apos;t think it&apos;s feasible unless the driver&apos;s test suite can configure the server to use artificially lower values for &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/isMaster/#isMaster.maxBsonObjectSize&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;maxBsonObjectSize&lt;/a&gt;, &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/isMaster/#isMaster.maxMessageSizeBytes&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;maxMessageSizeBytes&lt;/a&gt;, and/or &lt;a href=&quot;https://docs.mongodb.com/manual/reference/command/isMaster/#isMaster.maxWriteBatchSize&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;maxWriteBatchSize&lt;/a&gt;. As-is, we might be able to define a very large number of bulk write requests using YAML anchors but that would still lead to very large JSON files.&lt;/p&gt;

&lt;p&gt;I&apos;d vote for using prose tests, which would also allow drivers to intelligently verify behavior using APM without spec tests needing to define large command assertions (in addition to the large operation). Changes to &lt;tt&gt;onPrimaryTransactionalWrite&lt;/tt&gt; might also not be necessary if we can instead rely on &lt;tt&gt;failCommand&lt;/tt&gt; to fail individual write commands, which may contain any number of requests. For instance, we can apply &lt;tt&gt;failCommand&lt;/tt&gt; to &lt;tt&gt;insert&lt;/tt&gt; and skip the first command (i.e. batch) and only trigger a failure on the second half of requests sent in the second command.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="714946">GODRIVER-871</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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|huf6z3:</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>