-
Notifications
You must be signed in to change notification settings - Fork 10.5k
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
Fixed intermittent CPP sync server shutdown leak. #17151
Conversation
Specifically: if a request handling thread is in flight but scheduled out when shutdown is called on the server, but it has already passed the shutdown check, then when it resumes it will add a grpc_call to the completion queue that is leaked. We fix this by explicitly freeing such calls after all worker threads have shutdown. To manifest the leak, run the end2end::ClientCancelsRequestStream test repeatedly on the unpatched server implementation. About 0.5% of the time, the leak will manifest.
Thank you for your pull request. Before we can look at your contribution, we need to ensure all contributors are covered by a Contributor License Agreement. After the following items are addressed, please respond with a new comment here, and the automated system will re-verify.
Regards, |
|
|
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.
Thanks for the fix.
|
|
I signed it. |
Thanks! |
Specifically: if a request handling thread is in flight but scheduled
out when shutdown is called on the server, but it has already passed
the shutdown check, then when it resumes it will add a grpc_call to
the completion queue that is leaked. We fix this by explicitly freeing
such calls after all worker threads have shutdown.
To manifest the leak, run the end2end::ClientCancelsRequestStream
test repeatedly on the unpatched server implementation. About 0.5% of
the time, the leak will manifest.