Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

missing client connect url after re connect of restarted server is processed before disconnect. #1515

Closed
matthiashanel opened this issue Jul 14, 2020 · 0 comments · Fixed by #1517
Assignees

Comments

@matthiashanel
Copy link
Contributor

matthiashanel commented Jul 14, 2020

Defect

added a unit test #1516 to illustrate the issue.

Basically we use a map of url, when that kind or re-ordering happens we forget about a url.

This can also be re-produced whit the following setup.
Server_A)
Client_advertise URLA

Server_B and Server_C have the same value in client_advertise
client_advertise URLBC

When starting all 3 server and connecting via telnet to server_A,
connect_urls will contain URLA and URLBC

if Server_B OR Server_C is shut down, server_A will only return URLA.

This can be solved by ref counting the url entires in the map or using a list instead.

Another oddity is that if all server provide the same value for client_advertise, the list will contain two identical entries.
One for the current server, one for the other server.

The unit test and the example here are a bit contrived.
However, I only looked at this because a user reported that connect_urls was off.

kozlovic added a commit that referenced this issue Jul 15, 2020
If some servers in the cluster have the same connect URLs (due
to the use of client advertise), then it would be possible to
have a server sends the connect_urls INFO update to clients with
missing URLs.

Resolves #1515

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
@bruth bruth removed the 🐞 bug label Aug 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants