Description
Please answer these questions before submitting your issue.
What version of gRPC are you using?
1.23.0
What did you expect to see?
Error response after uncaught exception
Refer to the following file/line number:
You can see that Exception
types that are not subclasses of Error
or RuntimeException
(known as "checked exceptions") are not caught here.
Uncaught exceptions result in no response being sent to the client (but the connection remains open) and thus, from the clients perspective, the RPC call hangs indefinitely.
All exceptions should be caught here, not just runtime exceptions and errors.
"Checked" exceptions can be thrown from code that does not declare it in the signature by several means. One example is here:
https://stackoverflow.com/questions/15496/hidden-features-of-java/2131355#2131355
Another example is from any kotlin code that calls a java function that throws a checked exception.
NOTE: it looks like the same problem exists in multiple places in this file. The line number I linked is the specific one that I hit in the wild.