1
0
mirror of https://github.com/golang/go synced 2024-11-19 15:44:44 -07:00

net: fix data race in TestClosingListener

In https://golang.org/cl/66334, the test was changed so that the second
Listen would also be closed. However, it shouldn't have reused the same
ln variable, as that can lead to a data race with the background loop
that accepts connections.

Simply define a new Listener, since we don't need to overwrite the first
variable.

I was able to reproduce the data race report locally about 10% of the
time by reducing the sleep from a millisecond to a nanosecond. After the
fix, it's entirely gone after 1000 runs.

Fixes #22226.

Change-Id: I7c639f9f2ee5098eac951a45f42f97758654eacd
Reviewed-on: https://go-review.googlesource.com/70230
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Daniel Martí 2017-10-12 11:57:36 +01:00
parent 743117a85e
commit 0e4de78d13

View File

@ -723,9 +723,9 @@ func TestClosingListener(t *testing.T) {
ln.Close()
ln, err = Listen("tcp", addr.String())
ln2, err := Listen("tcp", addr.String())
if err != nil {
t.Fatal(err)
}
ln.Close()
ln2.Close()
}