gRPC-Java version 1.75 contains a bug related to Netty which can corrupt network stream in certain situations when other versions of Netty are present in the classpath in addition to gRPC-Java's shaded copy. The problem is fixed in gRPC-Java 1.76, see grpc/grpc-java#12393
This can cause Temporal worker to fail randomly. Example error:
io.grpc.StatusRuntimeException: INTERNAL: Encountered end-of-stream mid-frame
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:368)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:349)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:174)
at io.temporal.api.workflowservice.v1.WorkflowServiceGrpc$WorkflowServiceBlockingStub.pollWorkflowTaskQueue(WorkflowServiceGrpc.java:6370)
at io.temporal.internal.worker.WorkflowPollTask.doPoll(WorkflowPollTask.java:179)
at io.temporal.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:149)
at io.temporal.internal.worker.WorkflowPollTask.poll(WorkflowPollTask.java:31)
at io.temporal.internal.worker.MultiThreadedPoller$PollExecutionTask.run(MultiThreadedPoller.java:207)
at io.temporal.internal.worker.MultiThreadedPoller$PollLoopTask.run(MultiThreadedPoller.java:176)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
The fix is to upgrade to gRPC-Java 1.76.
gRPC-Java version 1.75 contains a bug related to Netty which can corrupt network stream in certain situations when other versions of Netty are present in the classpath in addition to gRPC-Java's shaded copy. The problem is fixed in gRPC-Java 1.76, see grpc/grpc-java#12393
This can cause Temporal worker to fail randomly. Example error:
The fix is to upgrade to gRPC-Java 1.76.