-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
Http2Stream emit connection related 'error' after receiving all data of stream. #29929
Comments
From a purely streams perspective it's fine to emit |
@ronag I agree with it. Maybe the subject of this issue is misleading. |
So the basic issue is that node/lib/internal/http2/core.js Lines 1066 to 1071 in ff02801
|
Or is it the deferred destroy() when reacting to the node/lib/internal/http2/core.js Lines 514 to 534 in ff02801
This seems to have been introduced in #18895. |
The following conditions cause an error event on
http2stream
, even thoughhttp2stream
received all data and RST_STREAM from a client.http2stream
is not destroyed(does not consume all data)http2stream
received all data and RST_STREAMSocket error without goaway frame causes a
http2session.destroy(err)
.node/lib/internal/http2/core.js
Lines 2678 to 2688 in 81bc7b3
http2session.destroy(err)
propagate error tohttp2stream.destroy(err)
.node/lib/internal/http2/core.js
Lines 1298 to 1323 in 81bc7b3
I thought that
http2stream
got RST_STREAM means that there is no error about processing data. So, I thought ifhttp2stream
is closed by RST_STREAM, connection error should not causehttp2stream
error.The codes to reproduce.
The text was updated successfully, but these errors were encountered: