<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:16:18 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>[CDRIVER-2777] mongoc_collection_watch prefers collection readConcern to the one in &quot;opts&quot;</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-2777</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;Probably since change streams were implemented in 1.9.0 (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2233&quot; title=&quot;Change stream support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2233&quot;&gt;&lt;del&gt;CDRIVER-2233&lt;/del&gt;&lt;/a&gt;), they prefer the collection readConcern over the readConcern passed in &quot;opts&quot;.&lt;/p&gt;

&lt;p&gt;Details: _mongoc_change_stream_new_from_collection sets stream-&amp;gt;read_concern to the collection&apos;s read concern, and copies the user-supplied options to stream-&amp;gt;opts. Then in _make_cursor, we copy stream-&amp;gt;opts to a local variable &quot;command_opts&quot;, resulting in something like:&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;   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;{&quot;readConcern&quot;: {&quot;level&quot;: &quot;user supplied level&quot;}, &quot;serverId&quot;: 1, &quot;sessionId&quot;: 1809617486}&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;We then append stream-&amp;gt;read_concern to command_opts:&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;   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;{&quot;readConcern&quot;: {&quot;level&quot;: &quot;user supplied level&quot;}, &quot;serverId&quot;: 1, &quot;sessionId&quot;: 1809617486, &quot;readConcern&quot;: {&quot;level&quot;: &quot;from collection&quot;}}&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;Now command_opts has two readConcern fields. A few layers deeper we call _mongoc_read_write_opts_parse, which is generated from IDL (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2373&quot; title=&quot;IDL for functions that take flexible options&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2373&quot;&gt;&lt;del&gt;CDRIVER-2373&lt;/del&gt;&lt;/a&gt;). For speed and simplicity, I deliberately implemented last-field-wins for duplicate fields in the IDL parsers instead of adding any logic to detect duplicates. In this case the readConcern from the collection is last, and that is the readConcern used.&lt;/p&gt;</description>
                <environment></environment>
        <key id="578260">CDRIVER-2777</key>
            <summary>mongoc_collection_watch prefers collection readConcern to the one in &quot;opts&quot;</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="13201">Fixed</resolution>
                                        <assignee username="jesse@mongodb.com">A. Jesse Jiryu Davis</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Sat, 28 Jul 2018 22:32:19 +0000</created>
                <updated>Sat, 28 Oct 2023 11:29:39 +0000</updated>
                            <resolved>Mon, 30 Jul 2018 16:12:52 +0000</resolved>
                                                    <fixVersion>1.13.0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1960345" author="xgen-internal-githook" created="Mon, 30 Jul 2018 16:13:25 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;A. Jesse Jiryu Davis&apos;, &apos;email&apos;: &apos;jesse@mongodb.com&apos;, &apos;username&apos;: &apos;ajdavis&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-2777&quot; title=&quot;mongoc_collection_watch prefers collection readConcern to the one in &amp;quot;opts&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-2777&quot;&gt;&lt;del&gt;CDRIVER-2777&lt;/del&gt;&lt;/a&gt; watch prefers readConcern from opts&lt;/p&gt;

&lt;p&gt;Don&apos;t use the collection&apos;s readConcern if there is a &quot;readConcern&quot; key&lt;br/&gt;
in &quot;opts&quot;.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/d90d57c34d686f943485623b2920a00c74138891&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/d90d57c34d686f943485623b2920a00c74138891&lt;/a&gt;&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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>CDRIVER-2778</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htug3j:</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>