What environment/version of gRPC-Java are you using?
HEAD, any platform
Steps to reproduce the bug
Configure a binder grpc server with an AsyncSecurityPolicy whose checkAuthorizationAsync() method returns futures that take ~1 second to fail with new IOException("ouch"). Make two calls to this server, one after the other on the same Channel.
What did you expect to see?
Both calls should fail with INTERNAL / "Authorization future failed" (or similar description)
What did you see instead?
The first call will fail as expected, taking the !isDone() code path in BinderTransportSecurity's ServerAuthInterceptor. Subsequent calls will take the Futures.getDone() path, be handled here and fail with code INTERNAL and description "ouch"
What environment/version of gRPC-Java are you using?
HEAD, any platform
Steps to reproduce the bug
Configure a binder grpc server with an
AsyncSecurityPolicywhosecheckAuthorizationAsync()method returns futures that take ~1 second to fail withnew IOException("ouch"). Make two calls to this server, one after the other on the same Channel.What did you expect to see?
Both calls should fail with
INTERNAL/ "Authorization future failed" (or similar description)What did you see instead?
The first call will fail as expected, taking the
!isDone()code path in BinderTransportSecurity'sServerAuthInterceptor. Subsequent calls will take theFutures.getDone()path, be handled here and fail with codeINTERNALand description "ouch"