With an UnaryResponse, OnReceiveResponse is never called
ecdatadog opened this issue · comments
Version used :
- github.com/fullstorydev/grpcurl 1.8.9
- google.golang.org/grpc 1.59.0
I am using grpcurl as a library and I discover that the call to OnReceiveResponse of the EventHandler is not called even when there is a success on the grpc call .
When digging in the code, it should be called here : https://github.com/fullstorydev/grpcurl/blob/master/invoke.go#L175-L186
In the google.golang.org/grpc, the function status.FromError has a difference between its documented contract and the actual contract when there is no error :
- Documented contract : https://github.com/grpc/grpc-go/blob/v1.59.0/status/status.go#L85-L86
- Real contract : https://github.com/grpc/grpc-go/blob/v1.59.0/status/status.go#L97-L99
since grpc/grpc-go@5da5b1f (so since version 1.52.2)
@ecdatadog, I don't see the issue. The code you highlighted in the grpc status package looks like this:
if err == nil {
return nil, true
}
So the stat.Code() == codes.OK
condition will succeed, and it should print the response message.
Have you stepped through this with a debugger to verify that this is the source of the error? If so, maybe you could elaborate a little more on the actual values you are seeing from the call to status.FromError
that are causing the issue?