-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
🐛 Close etcd leaky connection if client is not initialized properly #6540
Conversation
|
Welcome @vpineda1996! |
Hi @vpineda1996. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thx! nice catch
Currently, the `NewClient` method creates an Etcd client that is initialized and a go-routine is spawned off because it uses GPRC in the background. For the most part, CAPI handles closing this connection up in the stack. However, if the `newEtcdClient` method fails, we will then return a `nil` client, the go-routine that was spawned off will leak and CAPI will not be able to end it. This commit fixes that by forcing the `newEtcdClient` method to close connections if the client initialization fails.
/ok-to-test |
@vpineda1996 Thank you very much, very nice fix! Sorry for the slow response, too much going on right now. /lgtm /assign @fabriziopandini @vincepri |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
/retest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: fabriziopandini, vincepri The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What this PR does / why we need it:
Currently, the
NewClient
method creates an Etcd client that is initialized and a go-routine is spawned off because it uses GPRC in the background. For the most part, CAPI handles closing this connection up in the stack.However, if the
newEtcdClient
method fails, we will then return anil
client, the go-routine that was spawned off will leak and CAPI will not be able to end it.This commit fixes that by forcing the
newEtcdClient
method to close connections if the client initialization fails.Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):N/A