Skip to content

Unary call can hang forever if uncaught exeception thrown in client interceptor #6092

Closed
@ghost

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions