-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
Investigate Netty stream closure handling logic #536
Labels
Comments
nmittler
pushed a commit
to nmittler/grpc-java
that referenced
this issue
Jun 16, 2015
- AbstractClientStream -- Properly set the inboundPhase after receiving trailers. This is needed to allow the generic onStreamClosed() handler properly report the status for the closed stream. - BufferingHttp2ConnectionEncoder -- Moved exceptions to inner classes. -- All new headers fail with new exception type after encoder has been closed. - NettyClientHandler -- Closing the buffering encoder when the channel goes inactive in order to explicitly clear out any pending streams. -- Handling onStreamClosed() event to ensure that we always report status for closed streams. -- Added handling for stream exhaustion. Immediately fail new streams with a reasonable error. -- Using a second promise in createStream() to ensure that the completion handler in this method runs before the handler in the transport. Fixes grpc#536
nmittler
pushed a commit
to nmittler/grpc-java
that referenced
this issue
Jun 16, 2015
- AbstractClientStream -- Properly set the inboundPhase after receiving trailers. This is needed to allow the generic onStreamClosed() handler properly report the status for the closed stream. - BufferingHttp2ConnectionEncoder -- Moved exceptions to inner classes. -- All new headers fail with new exception type after encoder has been closed. - NettyClientHandler -- Closing the buffering encoder when the channel goes inactive in order to explicitly clear out any pending streams. -- Handling onStreamClosed() event to ensure that we always report status for closed streams. -- Added handling for stream exhaustion. Immediately fail new streams with a reasonable error. -- Using a second promise in createStream() to ensure that the completion handler in this method runs before the handler in the transport. Fixes grpc#536
nmittler
pushed a commit
to nmittler/grpc-java
that referenced
this issue
Jun 16, 2015
- AbstractClientStream -- Properly set the inboundPhase after receiving trailers. This is needed to allow the generic onStreamClosed() handler properly report the status for the closed stream. - BufferingHttp2ConnectionEncoder -- Moved exceptions to inner classes. -- All new headers fail with new exception type after encoder has been closed. - NettyClientHandler -- Closing the buffering encoder when the channel goes inactive in order to explicitly clear out any pending streams. -- Handling onStreamClosed() event to ensure that we always report status for closed streams. -- Added handling for stream exhaustion. Immediately fail new streams with a reasonable error. -- Using a second promise in createStream() to ensure that the completion handler in this method runs before the handler in the transport. Fixes grpc#536
At this point, this issue is essentially a dup of #605. Closing this. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
In the Netty handlers, we seem to have various ways that we can detect stream and handle stream closure. We should try to simplify this logic so that it's less error prone.
The text was updated successfully, but these errors were encountered: