[SERVER-58502] Change the hello command on mongos to handle requests with the loadBalanced flag Created: 13/Jul/21 Updated: 29/Oct/23 Resolved: 02/Sep/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.1.0-rc0, 5.0.7 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Matthew Saltz (Inactive) | Assignee: | Billy Donahue |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||||||||||
| Backport Requested: |
v5.0
|
||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Service Arch 2021-09-06 | ||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||
| Story Points: | 4 | ||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
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.
|
| Comments |
| Comment by Githook User [ 17/Mar/22 ] |
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: (cherry picked from commit 4a9c2e6f412619a50770ba867c11a6526840558f) |
| Comment by Githook User [ 15/Mar/22 ] |
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: (cherry picked from commit 4a9c2e6f412619a50770ba867c11a6526840558f) |
| Comment by Vivian Ge (Inactive) [ 06/Oct/21 ] |
|
Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it’s been triggered. For more active release information, please keep an eye on #server-release. Thank you! |
| Comment by Billy Donahue [ 29/Sep/21 ] |
|
I didn't realize this but the feature is being backported so disgregard my Sep24 comment. |
| Comment by Billy Donahue [ 28/Sep/21 ] |
|
The feature is incomplete. This project PM-2369 is mid-swing. |
| Comment by Abraham Egnor [ 28/Sep/21 ] |
|
Relatedly, I'm attempting to set up a test environment for the Rust driver's LB support, and even when running against a server version cut from a very recent commit serviceId is never returned. Looking at the commit for this ticket, it looks like it'll only be returned if setClientIsFromLoadBalancer has been called, but I can't find anywhere that happens - is this feature incomplete? |
| Comment by Jeremy Mikola [ 24/Sep/21 ] |
|
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 HAProxy on Evergreen, which requires the mocking I alluded to above. I didn't realize that the changes in this ticket only pertained to functionality for 5.1+, so please disregard my backport request. For drivers where mocking is not possible (e.g. PHP), we'll just limit our non-Atlas testing to 5.1+ server versions where we can rely on the functionality introduced by this ticket. |
| Comment by Billy Donahue [ 24/Sep/21 ] |
|
jmikola I don't understand why drivers (you mean the team or the software?) need to mock the serviceID with 5.0 servers. I'm reluctant to introduce this code into a server that will never support a loadBalancer in a real sense. |
| Comment by Jeremy Mikola [ 24/Sep/21 ] |
|
billy.donahue, matthew.saltz: Not sure who to ask about this, but is it possible to get this backported to 5.0.x? Drivers currently need to mock the service ID 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's private API, as this isn'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't have that option since we also test using libmongoc as a shared library (patching sources is out of the question). 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. |
| Comment by Githook User [ 30/Aug/21 ] |
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: |
| Comment by Billy Donahue [ 24/Aug/21 ] |
|
The Client _isFromLoadBalancer state from |