There was an issue with a test in Google's internal repository, so this fix was temporarily backed out and is now targeted for 1.63.
On Mon, Feb 26, 2024 at 9:45 AM 'Yuri Golobokov' via grpc.io < grpc-io@googlegroups.com> wrote: > Maybe you are hitting this bug: > https://github.com/grpc/grpc-java/issues/10838 > It is fixed and backported to 1.59 and later versions. > > On Monday, February 26, 2024 at 7:00:57 AM UTC-8 tuk wrote: > >> I am using gRPC 1.55.1 and observing an issue similar to the one >> discussed in the below GitHub issue >> >> - https://github.com/grpc/grpc-java/issues/9069 >> >> I have set the KeepAlive on both the client and server-side as suggested >> in the above issue >> >> I am creating the stub like below >> >> var channel = ManagedChannelBuilder.forAddress(network.getIp(), >> network.getPort()) >> .keepAliveTime(130, TimeUnit.SECONDS) >> .maxInboundMessageSize(maxInboundMessageSize) >> .maxInboundMetadataSize(maxInboundMetadataSize) >> .enableRetry() >> .build(); >> >> var stub = >> HelloServiceGrpc.newBlockingStub(channel).withDeadline(Deadline.after(115, >> TimeUnit.SECONDS)); >> stub.sayHello(); >> stub.sayHello(); >> >> In server side also keepAliveTime is set as suggested in the above github >> issue. >> >> Grpc.newServerBuilderForPort(port, InsecureServerCredentials.create()) >> .addService(new GreeterImpl()) >> .keepAliveTime(130, TimeUnit.SECONDS) >> .build() >> .start(); >> >> In my case, client calls server 1 then server 1 acts as a client to >> server 2. >> >> I am observing that when the deadline is exceeded in server2 the same >> deadline error is coming to server 1 like below which is also coming to >> client. It is working as expected. >> >> io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: context timed out >> at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:271) >> at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:252) >> at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:165) >> >> >> But on some rare occasions I am observing the client thread hanging like >> the below and not getting the deadline exceeded error >> >> at jdk.internal.misc.Unsafe.park(java...@17.0.9/Native Method) >> - parking to wait for <0x0000000767a53a00> (a >> io.grpc.stub.ClientCalls$ThreadlessExecutor) >> at java.util.concurrent.locks.LockSupport.park(java...@17.0.9 >> /LockSupport.java:211) >> at >> io.grpc.stub.ClientCalls$ThreadlessExecutor.waitAndDrain(ClientCalls.java:748) >> at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:157) >> >> I waited for about 2 hours & it did not recover. The only way to recover >> from this is to restart the client application. It happened 3-4 times in >> the last couple of months for us. >> >> Can someone let me know >> >> 1. What I am doing wrong or is there any known issue in the grpc-java >> 1.55.1 that I am using? >> 2. Is there any timeout config I can set on the gRPC client side so >> that the client threads do not hang indefinitely? >> >> -- > You received this message because you are subscribed to the Google Groups " > grpc.io" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to grpc-io+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/grpc-io/d2700afd-762e-49ee-a15b-7f7901a6d10cn%40googlegroups.com > <https://groups.google.com/d/msgid/grpc-io/d2700afd-762e-49ee-a15b-7f7901a6d10cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CANuT3qVFMGFdYXDPxKbTj0ObZ7j392NW13-MEiDo%2BV3kVp5ojQ%40mail.gmail.com.