Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net: TestCloseWrite failures with "i/o timeout" #49352

Open
bcmills opened this issue Nov 4, 2021 · 7 comments
Open

net: TestCloseWrite failures with "i/o timeout" #49352

bcmills opened this issue Nov 4, 2021 · 7 comments
Labels
NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@bcmills bcmills added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Nov 4, 2021
@bcmills bcmills added this to the Backlog milestone Nov 4, 2021
@bcmills
Copy link
Member Author

bcmills commented Jun 15, 2022

Still ongoing (but rare) on darwin/arm64.

greplogs -l -e '(?m)FAIL: TestCloseWrite/.*\n(\s+.*\n)*.*i/o timeout' --since=2021-11-04
2022-06-14T21:55:52-cb9bf93/darwin-arm64-11
2021-11-05T00:52:09-bd580a0/darwin-arm64-11_0-toothrot

(attn @neild, @ianlancetaylor)

@neild
Copy link
Contributor

neild commented Jun 15, 2022

I wonder if this is a variation on #37795?

@neild
Copy link
Contributor

neild commented Jun 15, 2022

The mips64le failure above has "too many open files" in the log, and is likely unrelated. I'll bet this is the same macOS bug as #37795. If it is, a similar workaround might work--add a small delay so that we don't close (or CloseWrite) a socket while reading from it.

@bcmills
Copy link
Member Author

bcmills commented Jun 15, 2022

Seems worth a shot, at least! (We can always try it, and reopen the issue if it turns out not to be the right workaround.)

@gopherbot
Copy link

gopherbot commented Jun 27, 2022

Change https://go.dev/cl/414534 mentions this issue: net: avoid darwin/arm64 platform bug in TestCloseWrite

@bcmills
Copy link
Member Author

bcmills commented Jun 27, 2022

Sent https://go.dev/cl/414534 with a port of the workaround from #37795, prompted by another failure on the dashboard.

greplogs -l -e '(?m)FAIL: TestCloseWrite/.*\n(\s+.*\n)*.*i/o timeout' --since=2022-06-15
2022-06-26T00:21:33-666d736/darwin-arm64-12

@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Jun 27, 2022
@dmitshur dmitshur modified the milestones: Backlog, Go1.19 Jun 27, 2022
@heschi
Copy link
Contributor

heschi commented Jul 6, 2022

Unless I'm misunderstanding something, this recurred on 6/29: 2022-06-29T22:28:30-b2cc0fe/darwin-arm64-11

@heschi heschi reopened this Jul 6, 2022
@gopherbot gopherbot modified the milestones: Go1.19, Go1.20 Aug 2, 2022
jproberts pushed a commit to jproberts/go that referenced this issue Aug 10, 2022
On darwin_arm64, reading from a socket at the same time as the other
end is closing it will occasionally hang for 60 seconds before
returning ECONNRESET. (This is a macOS issue, not a Go issue.)

Work around this condition by adding a brief sleep before the read.

Fixes golang#49352 (we hope).
Updates golang#37795.

Change-Id: I4052aec21d311d7370550aea9dd7941f39141133
Reviewed-on: https://go-review.googlesource.com/c/go/+/414534
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

5 participants