mirror of
https://github.com/golang/go
synced 2024-11-24 10:40:10 -07:00
net/http: ignore ECONNRESET errors in TestTransportConcurrency on netbsd
The source of these errors is undiagnosed, but they have only been observed on netbsd builders (on a variety of architectures). Tested manually by injecting this code into the test's handler: if mrand.Intn(4) == 0 { if conn, _, err := w.(Hijacker).Hijack(); err == nil { conn.(*net.TCPConn).SetLinger(0) conn.Close() return } } and temporarily disabling the 'runtime.GOOS' part of the condition. For #52168. Change-Id: I10965803e5a0d493ac4a000575de8b5f0266989c Reviewed-on: https://go-review.googlesource.com/c/go/+/398635 Trust: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
5bb2628c6f
commit
81ae993e54
@ -2099,17 +2099,21 @@ func TestTransportConcurrency(t *testing.T) {
|
||||
for req := range reqs {
|
||||
res, err := c.Get(ts.URL + "/?echo=" + req)
|
||||
if err != nil {
|
||||
t.Errorf("error on req %s: %v", req, err)
|
||||
if runtime.GOOS == "netbsd" && strings.HasSuffix(err.Error(), ": connection reset by peer") {
|
||||
// https://go.dev/issue/52168: this test was observed to fail with
|
||||
// ECONNRESET errors in Dial on various netbsd builders.
|
||||
t.Logf("error on req %s: %v", req, err)
|
||||
t.Logf("(see https://go.dev/issue/52168)")
|
||||
} else {
|
||||
t.Errorf("error on req %s: %v", req, err)
|
||||
}
|
||||
wg.Done()
|
||||
continue
|
||||
}
|
||||
all, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
t.Errorf("read error on req %s: %v", req, err)
|
||||
wg.Done()
|
||||
continue
|
||||
}
|
||||
if string(all) != req {
|
||||
} else if string(all) != req {
|
||||
t.Errorf("body of req %s = %q; want %q", req, all, req)
|
||||
}
|
||||
res.Body.Close()
|
||||
|
Loading…
Reference in New Issue
Block a user