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

feat(rumqttc): Do concurrent network connections (#939) #940

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Spindel
Copy link

@Spindel Spindel commented Jan 29, 2025

In case of routing issues, the individual socket connections will take ~4.5 minutes depending on OS level socket syn retransmit settings, which means that if there is a connection timeout that is shorter than that, connection will never be established even if other IP's resolve and route properly.

This implements concurrent connection attempts with a staggerd delay between attempts. I have chosen not to implement a full version of RFC8305 (Happy Eyeballs) here, as that is a much more invasive change.

Issue: #939

Type of change

Bug fix

Checklist:

  • Formatted with cargo fmt
  • Make an entry to CHANGELOG.md if it's relevant to the users of the library. If it's not relevant mention why.

In case of routing issues, the individual socket connections will take
~4.5 minutes depending on OS level socket syn retransmit settings, which
means that if there is a connection timeout that is shorter than that,
connection will never be established even if other IP's resolve and
route properly.

This implements concurrent connection attempts with a staggerd delay
between attempts. I have chosen not to implement a full version of
RFC8305 (Happy Eyeballs) here, as that is a much more invasive change.

Signed-off-by: D.S. Ljungmark <[email protected]>
Issue: bytebeamio#939
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 this pull request may close these issues.

1 participant