Closed

Description
What version of gRPC are you using?
v1.2.0, but reproduced with v1.23.0
What did you expect to see?
If a buggy interceptor throws in onClose, gRPC logs the error, but doesn't cancel the call. This can lead to a client hanging forever. Interceptor implementations should take care not to throw, but we think gRPC could also guard against this. A deadline doesn't help, because the deadline future is cleaned up before calling the client observer's onClose method.
Reproduction: https://github.com/lihalite/grpc-error-reproduction
For instance, ClientCallImpl#closeObserver could catch runtime exceptions and cancel the call.