]> Cypherpunks.ru repositories - gostls13.git/commitdiff
net: ignore or skip known-flaky localhost Dial operations on macOS 10.12 builder
authorBryan C. Mills <bcmills@google.com>
Tue, 22 Oct 2019 14:22:28 +0000 (10:22 -0400)
committerBryan C. Mills <bcmills@google.com>
Tue, 22 Oct 2019 15:15:06 +0000 (15:15 +0000)
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: Brad Fitzpatrick <bradfitz@golang.org>
src/net/dial_test.go
src/net/server_test.go
src/runtime/crash_test.go

index 5a8d0e09cad6f673c70142d0e51c0ed20b3e048e..4569703d129483ab969b403e3fd1c82442dbb40c 100644 (file)
@@ -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)
index 1608bebb00caa979f5b9760baba6093f16d0ed6d..b376d20b1736b5afca5d83a797b3239a82722055 100644 (file)
@@ -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()
index 7be52f499c3d586accde03d956c0bd0c5e506c25..ad1f29b2546327dcb98399dd99145af923aee826 100644 (file)
@@ -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"