aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2022-04-22 10:39:04 -0400
committerGopher Robot <gobot@golang.org>2022-04-22 21:27:09 +0000
commit8e1a9c34ab7ae73f6c7d6fad10a37f1738a1e86a (patch)
tree8f80e476d15872343a9e5d39c1b25fb4be6f2861
parent3e732411e5e0679af5375a3cbd84c41ef5cd2430 (diff)
downloadgo-8e1a9c34ab7ae73f6c7d6fad10a37f1738a1e86a.tar.gz
go-8e1a9c34ab7ae73f6c7d6fad10a37f1738a1e86a.zip
net: eliminate a deadlock on the failure path in TestNotTemporaryRead
This fixes a deadlock-on-failure that I probably introduced in CL 385314. This doesn't explain why the failure observed in #52492 occurred, but it will at least give us more information to diagnose the failure if it happens again. (The deadlock currently prevents the t.Fatal log message from being written to the test's output.) Fixes #52492. Change-Id: I9e7874985e2820a6a4b703abe4f8e2035d5138c0 Reviewed-on: https://go-review.googlesource.com/c/go/+/401575 Run-TryBot: Bryan Mills <bcmills@google.com> Auto-Submit: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
-rw-r--r--src/net/net_test.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/net/net_test.go b/src/net/net_test.go
index fa5ad632bb..29a2c5d4ba 100644
--- a/src/net/net_test.go
+++ b/src/net/net_test.go
@@ -529,17 +529,19 @@ func TestNotTemporaryRead(t *testing.T) {
<-dialed
cs.(*TCPConn).SetLinger(0)
cs.Close()
-
+ }()
+ defer func() {
ln.Close()
+ <-serverDone
}()
- defer func() { <-serverDone }()
ss, err := Dial("tcp", ln.Addr().String())
+ close(dialed)
if err != nil {
t.Fatal(err)
}
defer ss.Close()
- close(dialed)
+
_, err = ss.Read([]byte{0})
if err == nil {
t.Fatal("Read succeeded unexpectedly")