-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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: deadlock in TestDialParallelSpuriousConnection on darwin-arm* #37795
Comments
Change https://golang.org/cl/222959 mentions this issue: |
Looks like it's a true deadlock, not just a flaky test. With the new deadline logic, the test is now hanging for nearly a full 3 minutes: 2020-04-09T01:14:53-7a4247c/darwin-arm64-corellium |
The apparent deadlock in |
CC @cherrymui |
2020-10-20T00:59:23-a505312/ios-arm64-corellium Looks fixed to me: none of these in over a year. |
...aaand it's back. 😞
2022-03-28T19:34:01-e84a370/darwin-arm64-11_0-toothrot |
|
|
Looks like a slightly different failure mode on
|
Running the test 100'000 times on a darwin/amd64 machine did not reproduce the problem:
Running the same on a darwin/arm64 machine seems to reproduce after a while:
Complete output
Tested with Go 1.18.2, both with macOS 12 (though slightly different minor versions). |
This looks like a real failure. I've reproduced it in a simpler test case:
After running for a few minutes on my darwin/arm64 laptop:
The client dials and immediately closes a connection. The listener accepts and reads from the connection. On rare occasions, the read hangs for 60 seconds before returning "connection reset by peer". |
This appears to be a macOS bug. I've reproduced it in C. Client:
Server:
Run server. Run client. After a small number of iterations (takes milliseconds on my laptop), the server will hang in the |
Cool, thanks. I sent an e-mail to a couple of contacts at Apple. |
Change https://go.dev/cl/411155 mentions this issue: |
Change https://go.dev/cl/414534 mentions this issue: |
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 #49352 (we hope). Updates #37795. Change-Id: I4052aec21d311d7370550aea9dd7941f39141133 Reviewed-on: https://go-review.googlesource.com/c/go/+/414534 Run-TryBot: Bryan Mills <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Damien Neil <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
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 <[email protected]> Auto-Submit: Bryan Mills <[email protected]> Reviewed-by: Damien Neil <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
2020-03-10T00:24:30-08dee51/darwin-arm64-corellium
2020-03-02T15:39:23-12d02e7/darwin-arm64-corellium
2020-02-29T17:02:40-74f8983/darwin-arm64-corellium
2020-02-24T16:39:52-3093959/darwin-arm64-corellium
2020-01-31T20:18:54-1b7fefc/darwin-arm64-corellium
2020-01-23T21:01:12-ace25f8/darwin-arm-mg912baios
2020-01-19T14:04:09-8e0be05/darwin-arm-mg912baios
2019-10-30T00:41:31-47efbf0/darwin-arm-mg912baios
Forked from #34495.
CC @mikioh @bradfitz @ianlancetaylor @Zenly
The text was updated successfully, but these errors were encountered: