<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:20:13 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-4193] Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-4193</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;This ticket was split from DRIVERS-1916, please see that ticket for a detailed description. &lt;/p&gt;</description>
                <environment></environment>
        <key id="1902515">CDRIVER-4193</key>
            <summary>Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="ezra.chung@mongodb.com">Ezra Chung</assignee>
                                    <reporter username="dbeng-pm-bot">PM Bot</reporter>
                        <labels>
                            <label>size-medium</label>
                    </labels>
                <created>Tue, 19 Oct 2021 19:41:37 +0000</created>
                <updated>Sat, 28 Oct 2023 11:28:18 +0000</updated>
                            <resolved>Wed, 3 May 2023 20:29:38 +0000</resolved>
                                                    <fixVersion>1.24.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5446150" author="xgen-internal-githook" created="Tue, 23 May 2023 17:29:56 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4645&quot; title=&quot;Use or remove unused tasks in Evergreen config&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4645&quot;&gt;CDRIVER-4645&lt;/a&gt; add `mock-server-test` variant (#1277)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove unused TOPOLOGY&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;remove `authentication-tests-openssl-static`&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;remove `debug-compile-asan-openssl-cse`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Seems redundant with `asan-cse-sasl-cyrus-openssl-ubuntu1804-clang-compile`&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove `debug-compile-sasl-darwinssl-cse`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Seems redundant with `cse-sasl-cyrus-darwinssl-macos-1100-clang-compile`.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove `debug-compile-sasl-openssl-cse`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Seems redundant with `cse-sasl-cyrus-openssl-*` tasks.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove `debug-compile-sasl-winssl`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Seems redundant with `sasl-cyrus-winssl-*` tasks.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove `debug-compile-sasl-winssl-cse`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Seems redundant with `cse-sasl-cyrus-winssl-*` tasks.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;add `TestSuite_CheckLive` to `/counters` tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;expect `hello` and OP_MSG for load balanced tests&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4193&quot; title=&quot;Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4193&quot;&gt;&lt;del&gt;CDRIVER-4193&lt;/del&gt;&lt;/a&gt; changes to use OP_MSG and hello for handshake when in loadbalanced&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;add mock-server-test variant&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;remove `test-asan-memcheck-mock-server`&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Replaced by the new `mock-server-test` task.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;format test-mongoc-loadbalanced.c&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;move `match_loadBalanced` declarations up&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;remove `run mock server tests` from legacy config&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/b9ca36ff8c64f12330326f080c725c5502294834&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/b9ca36ff8c64f12330326f080c725c5502294834&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5398875" author="xgen-internal-githook" created="Wed, 3 May 2023 20:28:45 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Ezra Chung&apos;, &apos;email&apos;: &apos;88335979+eramongodb@users.noreply.github.com&apos;, &apos;username&apos;: &apos;eramongodb&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4193&quot; title=&quot;Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4193&quot;&gt;&lt;del&gt;CDRIVER-4193&lt;/del&gt;&lt;/a&gt; Ensure OP_MSG for handshakes and fix RPC op_egress counters (#1256)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Move SHM count function into mongoc-counters-private.h&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Declare test_framework_has_compressors in test-libmongoc.h&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Allow /counters/op_msg and /counters/op_compressed with auth&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Add _mongoc_rpc_op_egress_inc&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4193&quot; title=&quot;Require hello command for connection handshake to use OP_MSG, disallowing OP_QUERY&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4193&quot;&gt;&lt;del&gt;CDRIVER-4193&lt;/del&gt;&lt;/a&gt; RTT thread should also use hello if serverApi is given&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Do not increment RPC op_egress counters in mock server&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Add /counters/rpc/op_egress tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4121&quot; title=&quot;Use OP_MSG to authenticate if server supports OP_MSG&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4121&quot;&gt;&lt;del&gt;CDRIVER-4121&lt;/del&gt;&lt;/a&gt; Add /counters/rpc/egress/auth&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4622&quot; title=&quot;OP_QUERY egress counter may overcount&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4622&quot;&gt;&lt;del&gt;CDRIVER-4622&lt;/del&gt;&lt;/a&gt; RPC op_egress increment: mongoc_async_cmd_new -&amp;gt; mongoc_async_cmd_phase_send&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Add mongoc_&amp;lt;object&amp;gt;_uses_loadbalanced&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4265&quot; title=&quot;Require hello command + OP_MSG when &amp;#39;loadBalanced=True&amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4265&quot;&gt;&lt;del&gt;CDRIVER-4265&lt;/del&gt;&lt;/a&gt; Use OP_MSG for handshakes when loadBalanced=true&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Clarify meaning of RPC op_egress counters in documentation&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/f14370ea8130a645080dc6f78342f53b25ddb339&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/f14370ea8130a645080dc6f78342f53b25ddb339&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="4319395" author="JIRAUSER1261121" created="Thu, 27 Jan 2022 20:19:13 +0000"  >&lt;p&gt;As I read it, 3992 stipulates that using OP_MSG for hello handshakes is only the case when communicating with a &amp;gt;= 5.0 server or when the user has selected a specific server API. So, if neither of those conditions is true, OP_QUERY can still be used, and is used for the initial legacy-hello.&lt;/p&gt;

&lt;p&gt;For subsequent &quot;hello&quot; exchanges, I believe that the agreed-upon protocol is currently used (either OP_MSG or OP_QUERY), but I believe that this also means that OP_QUERY will always use &quot;legacy&quot; hello.&lt;/p&gt;</comment>
                            <comment id="4303424" author="JIRAUSER1261121" created="Thu, 20 Jan 2022 17:31:37 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kevin.albertson&quot; class=&quot;user-hover&quot; rel=&quot;kevin.albertson&quot;&gt;kevin.albertson&lt;/a&gt; it is very similar, but I don&apos;t think it&apos;s an exact duplicate because it adds this behavior:&lt;/p&gt;

&lt;p&gt;&quot;hello and legacy hello commands issued after the initial connection handshake MUST NOT contain handshake arguments. Any subsequent hello or legacy hello calls, such as the ones for topology monitoring purposes, MUST NOT include this argument.&quot;&lt;/p&gt;

&lt;p&gt;Which is similar (and I think their intent is to be clarifying) but not exactly the same as 3992&apos;s:&lt;/p&gt;

&lt;p&gt;&quot;If drivers interact with 5.0 or higher version server, they should not send deprecated wire ops or getLastError command and should use OP_MSG command and acknowledged writes.&quot;&lt;/p&gt;

&lt;p&gt;3992 does not say to avoid all handshake arguments, only deprecated ones.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1902521">PHPC-2069</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1902516">CXX-2394</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2321260">CDRIVER-4622</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1967869">CDRIVER-4265</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_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY22Q4</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6i7r:f1c</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_21457" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Upstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;DRIVERS-1916:&lt;br/&gt;
This ticket does two things:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;It clarifies that if the &quot;hello&quot; command is used (as opposed to &quot;isMaster&quot;) it must be sent using OP_MSG&lt;/li&gt;
	&lt;li&gt;Because &lt;a href=&quot;https://github.com/mongodb/specifications/blob/63b0451b4969f6bf7464e8d86d78b7552f65ba58/source/mongodb-handshake/handshake.rst#connection-handshake&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the previous version of the spec&lt;/a&gt; already required that if a versioned API is specified, &quot;hello&quot; must be used, it is made explicit that this also means OP_MSG must be used.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Drivers must ensure that their connection handshake uses both OP_MSG and &quot;hello&quot; if a versioned API is specified.&lt;br/&gt;
 For an example of what your connection process should look like after this change, take a look at the &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/mongodb-handshake/handshake.rst#connection-handshake&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Python implementation&lt;/a&gt; in the handshake spec.&lt;/p&gt;</customfieldvalue>

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