{{ message }}
http2: send GOAWAY properly & don't continue reading unnecessarily#20772
Closed
apapirovski wants to merge 5 commits into
Closed
http2: send GOAWAY properly & don't continue reading unnecessarily#20772apapirovski wants to merge 5 commits into
apapirovski wants to merge 5 commits into
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
e9b66cb to
717b70c
Compare
This comment has been minimized.
This comment has been minimized.
143e42a to
f066642
Compare
This comment has been minimized.
This comment has been minimized.
Contributor
Author
Contributor
Author
|
Or if anyone knows how to run a build with debug output on CI, that would also be amazing. |
This was referenced May 19, 2018
Member
@nodejs/build |
Member
@nodejs/testing too |
Member
|
I might be able to get the windows output next week, if it's still needed. |
f066642 to
c57784d
Compare
Contributor
Author
|
Took me forever but managed to build Node on FreeBSD. Let's see what it says... :) |
b494797 to
a37b938
Compare
This comment has been minimized.
This comment has been minimized.
a37b938 to
3d220c7
Compare
Currently http2 does not properly submit Goaway frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a Goaway frame, even though it should.
3d220c7 to
6cfca8a
Compare
Contributor
Author
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Aug 23, 2018
Currently http2 does not properly submit GOAWAY frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a GOAWAY frame, even though it should. Edge, IE & Safari are currently unable to handle empty TRAILERS frames despite them being correctly to spec. Instead send an empty DATA frame with END_STREAM flag in those situations. Fix and adjust several flaky and/or incorrect tests. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Aug 23, 2018
It's possible for the connections to take too long and since the server is already unrefed, the process will just exit. Instead adjust the test so that server unref only happens after all sessions have been successfuly established and unrefed. That still tests the same condition but will not fail under load. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
3 tasks
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Sep 25, 2018
Currently http2 does not properly submit GOAWAY frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a GOAWAY frame, even though it should. Edge, IE & Safari are currently unable to handle empty TRAILERS frames despite them being correctly to spec. Instead send an empty DATA frame with END_STREAM flag in those situations. Fix and adjust several flaky and/or incorrect tests. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Sep 25, 2018
It's possible for the connections to take too long and since the server is already unrefed, the process will just exit. Instead adjust the test so that server unref only happens after all sessions have been successfuly established and unrefed. That still tests the same condition but will not fail under load. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Oct 16, 2018
Currently http2 does not properly submit GOAWAY frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a GOAWAY frame, even though it should. Edge, IE & Safari are currently unable to handle empty TRAILERS frames despite them being correctly to spec. Instead send an empty DATA frame with END_STREAM flag in those situations. Fix and adjust several flaky and/or incorrect tests. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
kjin
pushed a commit
to kjin/node
that referenced
this pull request
Oct 16, 2018
It's possible for the connections to take too long and since the server is already unrefed, the process will just exit. Instead adjust the test so that server unref only happens after all sessions have been successfuly established and unrefed. That still tests the same condition but will not fail under load. PR-URL: nodejs#20772 Fixes: nodejs#20705 Fixes: nodejs#20750 Fixes: nodejs#20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs
pushed a commit
that referenced
this pull request
Oct 17, 2018
Currently http2 does not properly submit GOAWAY frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a GOAWAY frame, even though it should. Edge, IE & Safari are currently unable to handle empty TRAILERS frames despite them being correctly to spec. Instead send an empty DATA frame with END_STREAM flag in those situations. Fix and adjust several flaky and/or incorrect tests. Backport-PR-URL: #22850 PR-URL: #20772 Fixes: #20705 Fixes: #20750 Fixes: #20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
BethGriggs
pushed a commit
that referenced
this pull request
Oct 17, 2018
It's possible for the connections to take too long and since the server is already unrefed, the process will just exit. Instead adjust the test so that server unref only happens after all sessions have been successfuly established and unrefed. That still tests the same condition but will not fail under load. Backport-PR-URL: #22850 PR-URL: #20772 Fixes: #20705 Fixes: #20750 Fixes: #20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Merged
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Fix an issue where http2 wasn't correctly submitting Goaway frames for the session, as well as handle the case where ECONNRESET occurs after such a Goaway frame is received.
Fixes: #20705
Fixes: #20750
Fixes: #20850
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes