-
Notifications
You must be signed in to change notification settings - Fork 541
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
Fix goaway #3835
Fix goaway #3835
Conversation
Signed-off-by: Matteo Collina <[email protected]>
Signed-off-by: Matteo Collina <[email protected]>
I've opened this PR as draft with a lot of debug output, I will clean it up if this actually passes. |
Signed-off-by: Matteo Collina <[email protected]>
Signed-off-by: Matteo Collina <[email protected]>
lib/dispatcher/client-h2.js
Outdated
// The request was aborted | ||
if (!request.aborted) { | ||
request.onComplete([]) |
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.
I am just a little bit confused by the comment. Do you mean, The request was not aborted?
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.
I dont see any obvious issue
LGTM
Signed-off-by: Matteo Collina <[email protected]>
@Uzlopak PTAL |
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 :)
This PR changes how GOAWAY frames and user aborts are handled in HTTP/2.
In essence, we had a flaky test for a while that showed up locally on my machine after 2-3 hours of continuous runs. It's a bad race condition, which has been hard to find and a bad overlap between goaway, aborts, and manipulation of the
Client
state from the outside.