Hi,
We have a pretty straight forward ServerInterceptor implementation that seems to randomly throw an IllegalStateException from its onHalfClose method, which is simply calling the original ServerCall.Listener (from next.startCall(...)) - the server then gets a CANCELLED result from the client, and the connection (long term bidi stream) is then lost.
What could be causing this? Is there a way to get more info from the logs?
Thanks,
- Matt
Btw, this is the exception we get from gRPC in the logs (grpc-netty-shadeddep-4.0.0-SNAPSHOT is just a shaded dep around netty):
io.grpc.StatusRuntimeException: CANCELLED
at io.grpc.Status.asRuntimeException(Status.java:526) ~[grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:385) [grpc-stub-1.6.1.jar:1.6.1]
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:422) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:61) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:504) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:425) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:536) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:102) [grpc-netty-shadeddep-4.0.0-SNAPSHOT.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]