In the context of server streaming or bi-directional streaming calls, I'm
under the impression the client should be able to receive notice when the
server has decided to cancel the context for the call. I've been trying to
write up a test to capture this behavior, but it doesn't seem like
canceling the context on the server is triggering anything in the response
observer in the client side. Maybe I'm misinterpreting how the client
interacts with a server cancellation or just setting up the test case wrong?
My client test call is something like:
ClientResponseObserver<Object, TestResponse> closingObserver =
ClosingStreamObserver.closingClientResponseObserver(clientTestCloseable,
responseObserver);
serviceStub.testStream(req, closingObserver);
and then I wait a bit to see if anything propagates (I've got an atomic boolean
that I flip when `onError` or `onCompleted` get called. I had also tried a
listener on the current context on the client side as well, but that seemed
irrelevant.
On the server side I'm canceling the context something like this:
public void testStream(TestRequest request, StreamObserver<TestResponse>
responseObserver) {
CancellableContext cancellableContext = Context.current().withCancellation();
cancellableContext.cancel(new RuntimeException("Server context canceled"));
}
To step back a bit, I'm looking to know if and how a server can signal it is
canceling a request to the client.
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/d1b05ff0-0c54-4b2e-8642-e62fa11fb0e7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.