Replies: 3 comments
-
I have changed the code to use a async call instead: try {
final var createSessionResponse = futureStub
.withDeadlineAfter(withDeadlineAfter, TimeUnit.MILLISECONDS)
.createSession(createSessionRequest);
return createSessionResponse.get();
} catch ....... and I have the same behavior. If I use a debugger with ExecutionException enabled, the debugger catches that and the code executes as expected. Without a debugger, the code blocks on LockSupport.park(this) for some reasons. |
Beta Was this translation helpful? Give feedback.
-
I have added two breakpoints in ClientCalls.java in waitAndDrain when the waiter is reset to null and one in execute when the local waiter is assigned. Now in the debugger, if I turnoff the 2nd breakpoint, then the execute method is never executed - the 1st breakpoint never wakes up since the lock is not unparked. So - is this a bug in grpc ?!? I do not see any issue from the above calls in the stack. |
Beta Was this translation helpful? Give feedback.
-
In the end there is a dependency issue with google protobuf pkgs. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm having an issue with one grpc application. For some reasons, a grpc client blocking unary call does not end when the server is down. The 'interesting' part is that I have two others using the same dependencies and the same library that executes the blocking unary call that have no issues.
The unary call has a wait for set at 15 seconds:
In the logs of the working grpc apps when I see:
then I do get an ExecutionException thrown which is converted to StatusRuntimeException and the blocking stub is exiting.
But for one it does not. That ExecutionException seems not happen or not propagated and I'm running out of ideas on how can find the cause. I did look at the maven dependencies and I did not capture any difference at the grpc level nor at the netty level.
All 3 are using the same linux os based on ubuntu.
Since it is a common library that perform this blocking unary call, I have hard time to see how the one that does not work impacts it.
All 3 grpc apps are configured in the same way when communicating with the server too. Same keepalives, same idle setup.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions