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) { ...@@ -639,9 +639,11 @@ func TestDialerLocalAddr(t *testing.T) {
} }
c, err := d.Dial(tt.network, addr) c, err := d.Dial(tt.network, addr)
if err == nil && tt.error != nil || err != nil && tt.error == nil { if err == nil && tt.error != nil || err != nil && tt.error == nil {
// On Darwin this occasionally times out. // A suspected kernel bug in macOS 10.12 occasionally results in
// We don't know why. Issue #22019. // timeout errors when dialing address ::1. The errors have not
if runtime.GOOS == "darwin" && tt.error == nil && os.IsTimeout(err) { // 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") t.Logf("ignoring timeout error on Darwin; see https://golang.org/issue/22019")
} else { } else {
t.Errorf("%s %v->%s: got %v; want %v", tt.network, tt.laddr, tt.raddr, err, tt.error) 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) { ...@@ -104,6 +104,14 @@ func TestTCPServer(t *testing.T) {
if perr := parseDialError(err); perr != nil { if perr := parseDialError(err); perr != nil {
t.Error(perr) 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) t.Fatal(err)
} }
defer c.Close() defer c.Close()
......
...@@ -435,6 +435,14 @@ func TestRecoverBeforePanicAfterGoexit(t *testing.T) { ...@@ -435,6 +435,14 @@ func TestRecoverBeforePanicAfterGoexit(t *testing.T) {
} }
func TestNetpollDeadlock(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() t.Parallel()
output := runTestProg(t, "testprognet", "NetpollDeadlock") output := runTestProg(t, "testprognet", "NetpollDeadlock")
want := "done\n" 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