<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:58:06 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>[JAVA-2797] Ordered w:0 Bulk Writes payload failure behaviour</title>
                <link>https://jira.mongodb.org/browse/JAVA-2797</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Currently, split payloads are all sent w:0, so if the first batch errors a second batch is sent. This is different to single batch behaviour in that ordered bulk writes stop on error. &lt;/p&gt;</description>
                <environment></environment>
        <key id="503605">JAVA-2797</key>
            <summary>Ordered w:0 Bulk Writes payload failure behaviour</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="ross@mongodb.com">Ross Lawley</reporter>
                        <labels>
                    </labels>
                <created>Wed, 28 Feb 2018 17:02:52 +0000</created>
                <updated>Mon, 26 Nov 2018 17:00:56 +0000</updated>
                            <resolved>Mon, 26 Nov 2018 17:00:56 +0000</resolved>
                                                                    <component>Write Operations</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="2071578" author="ian@10gen.com" created="Mon, 26 Nov 2018 17:00:56 +0000"  >&lt;p&gt;Closing as Won&apos;t Fix because this is an uncommon use case in which users would not know the difference in the failure modes anyway.  The fix here is also likely to be complicated.&lt;/p&gt;</comment>
                            <comment id="1823134" author="rstam" created="Mon, 5 Mar 2018 15:50:06 +0000"  >&lt;p&gt;I&apos;m in the process of handling it... not yet fully implemented.&lt;/p&gt;

&lt;p&gt;The plan is to find the { w : 0 } in the encoded message and overwrite the 0 with a 1. Since the number of bytes isn&apos;t changing it&apos;s possible to do the overwrite in place.&lt;/p&gt;

&lt;p&gt;The lower layer should not have to know anything about higher layer concerns (like batch splitting and overriding write concerns), so I plan to add a EncodingPostProcessor delegate to the ComandMessage class that will be called by the MessageEncoder &lt;b&gt;after&lt;/b&gt; it has encoded the message. The EncodingPostProcessor can take any actions necessary to override the contents of the already encoded message.&lt;/p&gt;

&lt;p&gt;This is similar to going back and overriding the moreToCome flag after the fact, and not that different from backpatching document and array sizes after the fact.&lt;/p&gt;</comment>
                            <comment id="1823096" author="jeff.yemin" created="Mon, 5 Mar 2018 15:32:55 +0000"  >&lt;p&gt;I see.  It doesn&apos;t seem like we can fix this without a change to the Connection API, since the write concern is just part of the command and MixedBulkWriteOperation doesn&apos;t know whether it&apos;s the last batch.  How are you handling this in the C# driver, Robert?&lt;/p&gt;</comment>
                            <comment id="1823005" author="rstam" created="Mon, 5 Mar 2018 14:41:15 +0000"  >&lt;p&gt;I was describing the OP_MSG scenario.&lt;/p&gt;

&lt;p&gt;The moreToComeFlag in the message header and the { w : n } value in the command should be in agreement.&lt;/p&gt;

&lt;p&gt;In particular, for ordered unacknowledged writes that have to be split over multiple batches:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;all batches but the last need to override moreToComeFlag to 0 and the write concern to { w : 1 }&lt;/li&gt;
	&lt;li&gt;the last batch should have moreToComeFlag equal to 1 and the write concern equal to { w : 0 }&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Although a similar argument applies to OP_INSERT/UPDATE/DELETE.&lt;/p&gt;</comment>
                            <comment id="1819309" author="jeff.yemin" created="Wed, 28 Feb 2018 23:39:22 +0000"  >&lt;p&gt;Is this the case for the OP_MSG code path, the OP_INSERT/UPDATE/DELETE code path, or both?&lt;/p&gt;</comment>
                    </comments>
                    <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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr85yn:</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>