mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
client: do not fallback to GET if HEAD on _ping fail to connect
When we see an `ECONNREFUSED` (or equivalent) from an attempted `HEAD` on the `/_ping` endpoint there is no point in trying again with `GET` since the server is not responding/available at all. Once vendored into the cli this will partially mitigate https://github.com/docker/cli/issues/1739 ("Docker commands take 1 minute to timeout if context endpoint is unreachable") by cutting the effective timeout in half. Signed-off-by: Ian Campbell <ijc@docker.com>
This commit is contained in:
parent
3042254a87
commit
8c8457b0f2
1 changed files with 2 additions and 0 deletions
|
@ -31,6 +31,8 @@ func (cli *Client) Ping(ctx context.Context) (types.Ping, error) {
|
||||||
// Server handled the request, so parse the response
|
// Server handled the request, so parse the response
|
||||||
return parsePingResponse(cli, serverResp)
|
return parsePingResponse(cli, serverResp)
|
||||||
}
|
}
|
||||||
|
} else if IsErrConnectionFailed(err) {
|
||||||
|
return ping, err
|
||||||
}
|
}
|
||||||
|
|
||||||
req, err = cli.buildRequest("GET", path.Join(cli.basePath, "/_ping"), nil, nil)
|
req, err = cli.buildRequest("GET", path.Join(cli.basePath, "/_ping"), nil, nil)
|
||||||
|
|
Loading…
Reference in a new issue