fullstorydev / grpcurl

Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
MIT License
10.35k stars 497 forks source link

With an UnaryResponse, OnReceiveResponse is never called #429

Open ecdatadog opened 7 months ago

ecdatadog commented 7 months ago

Version used :

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 :

jhump commented 7 months ago

@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?