diff options
Diffstat (limited to 'vendor/google.golang.org/grpc/call.go')
-rw-r--r-- | vendor/google.golang.org/grpc/call.go | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/vendor/google.golang.org/grpc/call.go b/vendor/google.golang.org/grpc/call.go index 0854f84b9..13cf8b13b 100644 --- a/vendor/google.golang.org/grpc/call.go +++ b/vendor/google.golang.org/grpc/call.go @@ -29,6 +29,7 @@ import ( "google.golang.org/grpc/encoding" "google.golang.org/grpc/peer" "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" "google.golang.org/grpc/transport" ) @@ -59,7 +60,7 @@ func recvResponse(ctx context.Context, dopts dialOptions, t transport.ClientTran } for { if c.maxReceiveMessageSize == nil { - return Errorf(codes.Internal, "callInfo maxReceiveMessageSize field uninitialized(nil)") + return status.Errorf(codes.Internal, "callInfo maxReceiveMessageSize field uninitialized(nil)") } // Set dc if it exists and matches the message compression type used, @@ -113,7 +114,7 @@ func sendRequest(ctx context.Context, dopts dialOptions, compressor Compressor, compressor = nil // Disable the legacy compressor. comp = encoding.GetCompressor(ct) if comp == nil { - return Errorf(codes.Internal, "grpc: Compressor is not installed for grpc-encoding %q", ct) + return status.Errorf(codes.Internal, "grpc: Compressor is not installed for grpc-encoding %q", ct) } } hdr, data, err := encode(dopts.codec, args, compressor, outPayload, comp) @@ -121,10 +122,10 @@ func sendRequest(ctx context.Context, dopts dialOptions, compressor Compressor, return err } if c.maxSendMessageSize == nil { - return Errorf(codes.Internal, "callInfo maxSendMessageSize field uninitialized(nil)") + return status.Errorf(codes.Internal, "callInfo maxSendMessageSize field uninitialized(nil)") } if len(data) > *c.maxSendMessageSize { - return Errorf(codes.ResourceExhausted, "grpc: trying to send message larger than max (%d vs. %d)", len(data), *c.maxSendMessageSize) + return status.Errorf(codes.ResourceExhausted, "grpc: trying to send message larger than max (%d vs. %d)", len(data), *c.maxSendMessageSize) } err = t.Write(stream, hdr, data, opts) if err == nil && outPayload != nil { @@ -277,11 +278,11 @@ func invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli err = sendRequest(ctx, cc.dopts, cc.dopts.cp, c, callHdr, stream, t, args, topts) if err != nil { if done != nil { - updateRPCInfoInContext(ctx, rpcInfo{ - bytesSent: true, - bytesReceived: stream.BytesReceived(), + done(balancer.DoneInfo{ + Err: err, + BytesSent: true, + BytesReceived: stream.BytesReceived(), }) - done(balancer.DoneInfo{Err: err}) } // Retry a non-failfast RPC when // i) the server started to drain before this RPC was initiated. @@ -301,11 +302,11 @@ func invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli err = recvResponse(ctx, cc.dopts, t, c, stream, reply) if err != nil { if done != nil { - updateRPCInfoInContext(ctx, rpcInfo{ - bytesSent: true, - bytesReceived: stream.BytesReceived(), + done(balancer.DoneInfo{ + Err: err, + BytesSent: true, + BytesReceived: stream.BytesReceived(), }) - done(balancer.DoneInfo{Err: err}) } if !c.failFast && stream.Unprocessed() { // In these cases, the server did not receive the data, but we still @@ -323,12 +324,13 @@ func invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli c.traceInfo.tr.LazyLog(&payload{sent: false, msg: reply}, true) } t.CloseStream(stream, nil) + err = stream.Status().Err() if done != nil { - updateRPCInfoInContext(ctx, rpcInfo{ - bytesSent: true, - bytesReceived: stream.BytesReceived(), + done(balancer.DoneInfo{ + Err: err, + BytesSent: true, + BytesReceived: stream.BytesReceived(), }) - done(balancer.DoneInfo{Err: err}) } if !c.failFast && stream.Unprocessed() { // In these cases, the server did not receive the data, but we still @@ -339,6 +341,6 @@ func invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli continue } } - return stream.Status().Err() + return err } } |