Commit 95544cc2 authored by Bryan C. Mills's avatar Bryan C. Mills

net: ignore or skip known-flaky localhost Dial operations on macOS 10.12 builder

Fixes #22019
Fixes #32919

Change-Id: I60bf6c69b18c3e2d78b494e54adc958fe40134da
Reviewed-on: https://go-review.googlesource.com/c/go/+/202618
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 07ccdeb1
......@@ -639,9 +639,11 @@ func TestDialerLocalAddr(t *testing.T) {
}
c, err := d.Dial(tt.network, addr)
if err == nil && tt.error != nil || err != nil && tt.error == nil {
// On Darwin this occasionally times out.
// We don't know why. Issue #22019.
if runtime.GOOS == "darwin" && tt.error == nil && os.IsTimeout(err) {
// A suspected kernel bug in macOS 10.12 occasionally results in
// timeout errors when dialing address ::1. The errors have not
// been observed on newer versions of the OS, so we don't plan to work
// around them. See https://golang.org/issue/22019.
if tt.raddr == "::1" && os.Getenv("GO_BUILDER_NAME") == "darwin-amd64-10_12" && os.IsTimeout(err) {
t.Logf("ignoring timeout error on Darwin; see https://golang.org/issue/22019")
} else {
t.Errorf("%s %v->%s: got %v; want %v", tt.network, tt.laddr, tt.raddr, err, tt.error)
......
......@@ -104,6 +104,14 @@ func TestTCPServer(t *testing.T) {
if perr := parseDialError(err); perr != nil {
t.Error(perr)
}
if tt.taddr == "::1" && os.Getenv("GO_BUILDER_NAME") == "darwin-amd64-10_12" && os.IsTimeout(err) {
// A suspected kernel bug in macOS 10.12 occasionally results in
// "i/o timeout" errors when dialing address ::1. The errors have not
// been observed on newer versions of the OS, so we don't plan to work
// around them. See https://golang.org/issue/32919.
t.Logf("ignoring error on known-flaky macOS 10.12 builder: %v", err)
continue
}
t.Fatal(err)
}
defer c.Close()
......
......@@ -435,6 +435,14 @@ func TestRecoverBeforePanicAfterGoexit(t *testing.T) {
}
func TestNetpollDeadlock(t *testing.T) {
if os.Getenv("GO_BUILDER_NAME") == "darwin-amd64-10_12" {
// A suspected kernel bug in macOS 10.12 occasionally results in
// an apparent deadlock when dialing localhost. The errors have not
// been observed on newer versions of the OS, so we don't plan to work
// around them. See https://golang.org/issue/22019.
testenv.SkipFlaky(t, 22019)
}
t.Parallel()
output := runTestProg(t, "testprognet", "NetpollDeadlock")
want := "done\n"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment