]> Cypherpunks repositories - gostls13.git/commit
cmd/go: add support for GOPROXY fallback on unexpected errors
authorJay Conrod <jayconrod@google.com>
Thu, 12 Mar 2020 22:56:40 +0000 (18:56 -0400)
committerJay Conrod <jayconrod@google.com>
Tue, 31 Mar 2020 20:08:48 +0000 (20:08 +0000)
commitfaa53e17d1c91d97aa2b780ac41190d151aa6b0e
treed580bdf23266f04257761969ac7412c5ff510e3d
parent3ff9c4f2a6670edaee3962571ef6241c1bfcc2fc
cmd/go: add support for GOPROXY fallback on unexpected errors

URLs in GOPROXY may now be separated with commas (,) or pipes (|). If
a request to a proxy fails with any error (including connection errors
and timeouts) and the proxy URL is followed by a pipe, the go command
will try the request with the next proxy in the list. If the proxy is
followed by a comma, the go command will only try the next proxy if
the error a 404 or 410 HTTP response.

The go command will determine how to connect to the checksum database
using the same logic. Before accessing the checksum database, the go
command sends a request to <proxyURL>/sumdb/<sumdb-name>/supported.
If a proxy responds with 404 or 410, or if any other error occurs and
the proxy URL in GOPROXY is followed by a pipe, the go command will
try the request with the next proxy. If all proxies respond with 404
or 410 or are configured to fall back on errors, the go command will
connect to the checksum database directly.

This CL does not change the default value or meaning of GOPROXY.

Fixes #37367

Change-Id: I35dd218823fe8cb9383e9ac7bbfec2cc8a358748
Reviewed-on: https://go-review.googlesource.com/c/go/+/226460
Run-TryBot: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
doc/go1.15.html
src/cmd/go/alldocs.go
src/cmd/go/internal/modfetch/proxy.go
src/cmd/go/internal/modfetch/sumdb.go
src/cmd/go/internal/modload/help.go
src/cmd/go/testdata/script/mod_proxy_list.txt
src/cmd/go/testdata/script/mod_sumdb_proxy.txt