Merge pull request #3229 from xiang90/f_cerr

client: return context.Canceled error when user cancels the request
This commit is contained in:
Xiang Li 2015-08-06 14:41:19 -07:00
commit b04bb3e0ea
2 changed files with 8 additions and 2 deletions

View File

@ -255,7 +255,13 @@ func (c *httpClusterClient) Do(ctx context.Context, act httpAction) (*http.Respo
resp, body, err = hc.Do(ctx, action)
if err != nil {
cerr.Errors = append(cerr.Errors, err)
if err == context.DeadlineExceeded || err == context.Canceled {
// mask previous errors with canceled error if the user explicitly canceled the request
if err == context.Canceled {
return nil, nil, context.Canceled
}
// TODO: deal with deadline error when we improve the deadline handling.
if err == context.DeadlineExceeded {
return nil, nil, cerr
}
continue

View File

@ -364,7 +364,7 @@ func TestHTTPClusterClientDo(t *testing.T) {
),
rand: rand.New(rand.NewSource(0)),
},
wantErr: &ClusterError{Errors: []error{context.Canceled}},
wantErr: context.Canceled,
},
// return err if there are no endpoints