mirror of https://github.com/golang/go.git
net: avoid windows hang in TestCloseWrite
On Windows, reading from a socket at the same time as the other end is closing it will occasionally hang. This is a Windows issue, not a Go issue, similar to what happens in macOS (see #49352). Work around this condition by adding a brief sleep before the read. Fixes #73140. Change-Id: I24e457a577e507d0d69924af6ffa1aa24c4aaaa6 Reviewed-on: https://go-review.googlesource.com/c/go/+/671457 Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Alan Donovan <adonovan@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> Commit-Queue: Alan Donovan <adonovan@google.com> Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
bb0c14b895
commit
8105ea53c3
|
|
@ -98,12 +98,12 @@ func TestCloseWrite(t *testing.T) {
|
|||
}
|
||||
|
||||
// Workaround for https://go.dev/issue/49352.
|
||||
// On arm64 macOS (current as of macOS 12.4),
|
||||
// On Windows and arm64 macOS (current as of macOS 12.4),
|
||||
// reading from a socket at the same time as the client
|
||||
// is closing it occasionally hangs for 60 seconds before
|
||||
// returning ECONNRESET. Sleep for a bit to give the
|
||||
// socket time to close before trying to read from it.
|
||||
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
|
||||
if runtime.GOOS == "windows" || (runtime.GOOS == "darwin" && runtime.GOARCH == "arm64") {
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue