-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Internal error in gRPC channel of WorkflowServiceStubs #863
Comments
I was able to reproduce the bug within grpc-java source code without any Temporal code and submitted grpc/grpc-java#8714 |
…RPC-java Improve connection management related documentation Issue temporalio#863
…RPC-java Improve connection management related documentation Issue temporalio#863
…RPC-java Improve connection management related documentation Issue temporalio#863
…RPC-java Improve connection management related documentation Issue temporalio#863
…RPC-java Improve connection management related documentation Issue temporalio#863
A temporary workaround is implemented waiting for the related gRPC issue to be fixed. |
Expected Behavior
A single instance of WorkflowServiceStubs is created once per application and used for communication with Temporal frontend API.
Actual Behavior
After long period of inactivity (~40min) at some point of time we see an internal exception when trying to start a new workflow:
io.grpc.StatusRuntimeException: INTERNAL: Panic! This is a bug!
and channel becomes unusable after that (i.e. all attempts to use it result in the same error.)I cannot prove, but it might be related to some race condition between idleTimer in the netty channel (which has 30 min default timeout and is not configured by Temporal SDK) and Temporal own mechanism to reset gRPC connections via setGrpcReconnectFrequency() (that also calls to enterIdle() on the channel). I am not sure why the existing idleTimer is not used for this purpose in the first place, but maybe there are some specific considerations.
Full stack trace:
Specifications
The text was updated successfully, but these errors were encountered: