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

[Event Hubs] investigate connection disconnect behavior in linux #6118

Closed
chradek opened this issue Nov 8, 2019 · 5 comments · Fixed by #6507
Closed

[Event Hubs] investigate connection disconnect behavior in linux #6118

chradek opened this issue Nov 8, 2019 · 5 comments · Fixed by #6507
Assignees
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs

Comments

@chradek
Copy link
Contributor

chradek commented Nov 8, 2019

Some other language SDKs could keep a connection open despite a socket no longer receiving traffic in linux. A fix in those SDKs was to add an idle timeout. A quick search suggests the JS SDK already has an idle timeout of 60 seconds, but this issue is to track confirming that it is working correctly.

@chradek chradek added Client This issue points to a problem in the data-plane of the library. Event Hubs labels Nov 8, 2019
@ramya-rao-a ramya-rao-a added this to the [2020] January milestone Dec 5, 2019
@chradek
Copy link
Contributor Author

chradek commented Dec 5, 2019

Confirmed that this is an issue in our amqp-based sdks.

We can make use of the idle_time_out parameter (supports minimum of 10 seconds) in rhea.

So far I've encountered 2 issues when trying to use idle_time_out.

amqp/rhea#264 (resolved)
Rhea now notifies when the idle_time_out has been met by dispatching a disconnected event on a connection. Previously there was no way to be notified when the idle_time_out was met.

amqp/rhea#266
There is an issue preventing us from being able to re-use a connection after the idle_time_out has been met. Since we can't use rhea's built-in reconnect and don't want to create an entirely new thea Connection object (this would be a large refactor), ideally the above issue would be addressed to unblock us. I tested the change suggested in the issue with Event Hubs and it worked well. I believe this should be our last blocker.

@chradek
Copy link
Contributor Author

chradek commented Dec 5, 2019

amqp/rhea#267 has been merged which fixes amqp/rhea#266, so there shouldn't be any blockers left.
Changes are in version 1.0.15 of rhea.

Next steps are:

  • determine best place to expose idleTimeOut (client libraries or amqp libraries?)
  • update amqp-common to pass idle_time_out as a rhea connection option.
  • update core-amqp to pass idle_time_out as a rhea connection option.
  • determine whether to pin rhea version in amqp libraries or ask users to reinstall node modules.

@ramya-rao-a
Copy link
Contributor

Should we release an update for Service Bus with this fix?

@chradek
Copy link
Contributor Author

chradek commented Dec 11, 2019

#6507 updates service bus and event hubs to take in these changes.

@chradek
Copy link
Contributor Author

chradek commented Dec 13, 2019

This fix is present in:

  • @azure/event-hubs version 2.1.4
  • @azure/event-processor-host version 2.1.1
  • @azure/service-bus version 1.1.2

It will also go out in the next version of @azure/event-hubs 5.x.

@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Client This issue points to a problem in the data-plane of the library. Event Hubs
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants