<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 05:44:42 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>[SERVER-58502] Change the hello command on mongos to handle requests with the loadBalanced flag</title>
                <link>https://jira.mongodb.org/browse/SERVER-58502</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;This behavior only applies to the initial hello command on a connection. Any subsequent hello commands executed on a connection are not subject to these constraints.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;hello request/connection mode&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Connections established with the Proxy Protocol&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Connections established without the Proxy Protocol&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;loadBalanced = true&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Response must include a serviceId field of type ObjectID, which the server will generate at process start.&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Response will be the normal hello response, not containing the serviceId. The load balancer specification for drivers states that: &#8220;When the server&apos;s hello response does not contain a serviceId field, the driver MUST throw an exception with the message &quot;Driver attempted to initialize in load balancing mode, but the server does not support this mode.&quot;&#8221; So there is no need to do anything special or return an error from mongos in this case.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;loadBalanced = false (or absent)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Return an error with a message &#8220;The server is being accessed through a load balancer, but this driver does not have load balancing enabled.&#8221; and an error code LoadBalancerSupportMismatch.&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;Response will be the normal hello response, not containing the serviceId.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
</description>
                <environment></environment>
        <key id="1816794">SERVER-58502</key>
            <summary>Change the hello command on mongos to handle requests with the loadBalanced flag</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="billy.donahue@mongodb.com">Billy Donahue</assignee>
                                    <reporter username="matthew.saltz@mongodb.com">Matthew Saltz</reporter>
                        <labels>
                    </labels>
                <created>Tue, 13 Jul 2021 22:12:59 +0000</created>
                <updated>Sun, 29 Oct 2023 21:50:58 +0000</updated>
                            <resolved>Thu, 2 Sep 2021 17:18:13 +0000</resolved>
                                                    <fixVersion>5.1.0-rc0</fixVersion>
                    <fixVersion>5.0.7</fixVersion>
                                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="4418524" author="xgen-internal-githook" created="Thu, 17 Mar 2022 16:07:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Billy Donahue&apos;, &apos;email&apos;: &apos;billy.donahue@mongodb.com&apos;, &apos;username&apos;: &apos;BillyDonahue&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58502&quot; title=&quot;Change the hello command on mongos to handle requests with the loadBalanced flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58502&quot;&gt;&lt;del&gt;SERVER-58502&lt;/del&gt;&lt;/a&gt; mongos hello loadBalanced option&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 4a9c2e6f412619a50770ba867c11a6526840558f)&lt;br/&gt;
Branch: LB&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/14062af8ee92c4e593f6db34f6e55a09680769b8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/14062af8ee92c4e593f6db34f6e55a09680769b8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4413117" author="xgen-internal-githook" created="Tue, 15 Mar 2022 15:29:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Billy Donahue&apos;, &apos;email&apos;: &apos;billy.donahue@mongodb.com&apos;, &apos;username&apos;: &apos;BillyDonahue&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58502&quot; title=&quot;Change the hello command on mongos to handle requests with the loadBalanced flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58502&quot;&gt;&lt;del&gt;SERVER-58502&lt;/del&gt;&lt;/a&gt; mongos hello loadBalanced option&lt;/p&gt;

&lt;p&gt;(cherry picked from commit 4a9c2e6f412619a50770ba867c11a6526840558f)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/702832c9abb9cf21d19e0a1aec49e546a85abc64&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/702832c9abb9cf21d19e0a1aec49e546a85abc64&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4107295" author="JIRAUSER1259052" created="Wed, 6 Oct 2021 18:22:36 +0000"  >&lt;p&gt;Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it&#8217;s been triggered. For more active release information, please keep an eye on #server-release. Thank you!&lt;/p&gt;</comment>
                            <comment id="4091704" author="billy.donahue" created="Wed, 29 Sep 2021 14:16:55 +0000"  >&lt;p&gt;I didn&apos;t realize this but the feature is being backported so disgregard my Sep24 comment.&lt;/p&gt;</comment>
                            <comment id="4089264" author="billy.donahue" created="Tue, 28 Sep 2021 14:50:35 +0000"  >&lt;p&gt;The feature is incomplete. This project PM-2369 is mid-swing.&lt;/p&gt;</comment>
                            <comment id="4089218" author="JIRAUSER1260578" created="Tue, 28 Sep 2021 14:36:00 +0000"  >&lt;p&gt;Relatedly, I&apos;m attempting to set up a test environment for the Rust driver&apos;s LB support, and even when running against a server version cut from a very recent commit serviceId is never returned.&#160; Looking at the commit for this ticket, it looks like it&apos;ll only be returned if&#160;setClientIsFromLoadBalancer has been called, but I can&apos;t find anywhere that happens - is this feature incomplete?&lt;/p&gt;</comment>
                            <comment id="4083582" author="jmikola@gmail.com" created="Fri, 24 Sep 2021 16:39:38 +0000"  >&lt;p&gt;Thanks for the quick reply. I was referring to the driver team, which needs to test specific drivers with load balancers. Apart from Atlas Serverless testing (where I believe the proxy injects a server ID), our non-Atlas testing uses &lt;a href=&quot;https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-load-balancer.sh&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;HAProxy on Evergreen&lt;/a&gt;, which requires the mocking I alluded to above. I didn&apos;t realize that the changes in this ticket only pertained to functionality for 5.1+, so please disregard my backport request.&lt;/p&gt;

&lt;p&gt;For drivers where mocking is not possible (e.g. PHP), we&apos;ll just limit our non-Atlas testing to 5.1+ server versions where we can rely on the functionality introduced by this ticket.&lt;/p&gt;</comment>
                            <comment id="4083545" author="billy.donahue" created="Fri, 24 Sep 2021 16:24:55 +0000"  >&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 don&apos;t understand why drivers (you mean the team or the software?) need to mock the serviceID with 5.0 servers.&lt;br/&gt;
5.0 will never have this feature that that should be ok.&lt;/p&gt;

&lt;p&gt;I&apos;m reluctant to introduce this code into a server that will never support a loadBalancer in a real sense.&lt;/p&gt;</comment>
                            <comment id="4083181" author="jmikola@gmail.com" created="Fri, 24 Sep 2021 14:28:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=billy.donahue&quot; class=&quot;user-hover&quot; rel=&quot;billy.donahue&quot;&gt;billy.donahue&lt;/a&gt;, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=matthew.saltz&quot; class=&quot;user-hover&quot; rel=&quot;matthew.saltz&quot;&gt;matthew.saltz&lt;/a&gt;: Not sure who to ask about this, but is it possible to get this backported to 5.0.x? Drivers currently need to &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/load-balancers/tests/README.rst#test-runner-configuration&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;mock the service ID&lt;/a&gt; when testing against 5.0, and that is especially problematic for drivers such as Swift and PHP, which are built atop libmongoc. The mocking functionality only appears in libmongoc&apos;s private API, as this isn&apos;t something that belongs in a public API. Swift was able to patch their bundled libmongoc sources when compiling for tests (SWIFT-1319), but PHP really doesn&apos;t have that option since we also test using libmongoc as a shared library (patching sources is out of the question).&lt;/p&gt;

&lt;p&gt;Beyond libmongoc and its downstream drivers, backporting this would generally be helpful to allow all drivers to remove this mocking behavior from their test suites.&lt;/p&gt;</comment>
                            <comment id="4030377" author="xgen-internal-githook" created="Mon, 30 Aug 2021 22:31:45 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Billy Donahue&apos;, &apos;email&apos;: &apos;billy.donahue@mongodb.com&apos;, &apos;username&apos;: &apos;BillyDonahue&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58502&quot; title=&quot;Change the hello command on mongos to handle requests with the loadBalanced flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58502&quot;&gt;&lt;del&gt;SERVER-58502&lt;/del&gt;&lt;/a&gt; mongos hello loadBalanced option&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/4a9c2e6f412619a50770ba867c11a6526840558f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/4a9c2e6f412619a50770ba867c11a6526840558f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4019795" author="billy.donahue" created="Tue, 24 Aug 2021 16:37:51 +0000"  >&lt;p&gt;The Client &lt;tt&gt;_isFromLoadBalancer&lt;/tt&gt; state from &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58562&quot; title=&quot;Add a boolean field _isFromLoadBalancer to Client&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58562&quot;&gt;&lt;del&gt;SERVER-58562&lt;/del&gt;&lt;/a&gt; is better off living in the per-Client decoration struct we&apos;re going to need anyway for more advanced features of load balancer support. Moving it as part of &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-58502&quot; title=&quot;Change the hello command on mongos to handle requests with the loadBalanced flag&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-58502&quot;&gt;&lt;del&gt;SERVER-58502&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="1816787">SERVER-58499</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1816789">SERVER-58500</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1612302">PHPC-1752</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1816789">SERVER-58500</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1709277">PYTHON-2712</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1815286">NODE-3431</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1922691">DRIVERS-1983</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1819471">SERVER-58562</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="21777"><![CDATA[v5.0]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 24 Aug 2021 08:23:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 46 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-58500'>SERVER-58500</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-58499'>SERVER-58499</a></s>]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-2369</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 46 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>abraham.egnor@mongodb.com</customfieldvalue>
            <customfieldvalue>billy.donahue@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>jmikola@mongodb.com</customfieldvalue>
            <customfieldvalue>matthew.saltz@mongodb.com</customfieldvalue>
            <customfieldvalue>vivian.ge@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzrw7j:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hz8unz:</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_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="5293">Service Arch 2021-09-06</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10555" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzrign:</customfieldvalue>

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