-
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: no IO deadline support for Plan 9 #11932
Comments
Yes, this is the long-standing issue with network i/o cancellations. |
CL https://golang.org/cl/15941 mentions this issue. |
Fixes #7782 Fixes #9554 Updates #7237 (original metabug, before we switched to specific bugs) Updates #11932 (plan9 still doesn't have net I/O deadline support) Change-Id: I96f311b88b1501d884ebc008fd31ad2cf1e16d75 Reviewed-on: https://go-review.googlesource.com/15941 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: David du Colombier <0intro@gmail.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Since CL 22101, network tests are failing on Plan 9 due to the lack of deadline support. Instead of panicking, we just ignore the deadline when set. Update #11932. Fixes #15328. Change-Id: I1399303b0b3d6d81e0b8b8d327980d978b411a46 Reviewed-on: https://go-review.googlesource.com/22127 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
CL https://golang.org/cl/22144 mentions this issue. |
@0intro, I think https://go-review.googlesource.com/c/22144/ might've fixed a number of the I/O timeout bugs, but I didn't have time to check which ones. Can you investigate and remove some |
I've noticed some tests that could be enabled. I'll do a full review of the disabled tests, |
My previous https://golang.org/cl/22101 to add context throughout the net package broke Plan 9, which isn't currently tested (#15251). It also broke some old unsupported version of Windows (Windows 2000?) which doesn't have the ConnectEx function, but that was only found visually, since our minimum supported Windows version has ConnectEx. This change simplifies the Windows and deletes the non-ConnectEx code path. Windows 2000 will work even less now, if it even worked before. Windows XP remains our minimum supported version. Specifically, the previous CL stopped using the "dial" function, which 0intro noted: #15333 (comment) This CL removes the dial function instead and makes plan9's net implementation respect contexts, which likely fixes a number of t.Skipped tests. I'm leaving that to 0intro to investigate. In the process of propagating and respecting contexts for plan9, I had to change some signatures to add contexts to more places and ended up pushing contexts down into the Go-based DNS resolution as well, replacing the pure-Go DNS implementation's use of "timeout time.Duration" with a context instead. Updates #11932 Updates #15328 Fixes #15333 Change-Id: I6ad1e62f38271cdd86b3f40921f2d0f23374936a Reviewed-on: https://go-review.googlesource.com/22144 Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
…cel on Plan 9 TestDialParallel, TestDialerFallbackDelay and TestDialCancel require dialTCP to support cancellation, which has been implemented for Plan 9 in CL 22144. Updates #11225. Updates #11932. Change-Id: I3b30a645ef79227dfa519cde8d46c67b72f2485c Reviewed-on: https://go-review.googlesource.com/22203 Run-TryBot: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
DualStack mode requires dialTCP to support cancellation, which has been implemented for Plan 9 in CL 22144. Updates #11225. Updates #11932. Change-Id: I6e468363dc147326b097b604c122d5af80362787 Reviewed-on: https://go-review.googlesource.com/22204 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
What remains here? |
CL https://golang.org/cl/30164 mentions this issue. |
All implementations have always implemented this behavior, it's tested, and it's depended on by other packages. (notably, by net/http) The one exception is Plan 9 which doesn't support I/O deadlines at all (tracked in #11932). As a result, a bunch of tests fail on plan9 (#7237). But once Plan 9 adds I/O deadline support, it'll also need this behavior. Change-Id: Idb71767f0c99279c66dce29f7bdc78ef467e47aa Reviewed-on: https://go-review.googlesource.com/30164 Reviewed-by: Sam Whited <sam@samwhited.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
CL https://golang.org/cl/31521 mentions this issue. |
See https://github.com/golang/go/blob/master/src/net/fd_plan9.go#L210.
The text was updated successfully, but these errors were encountered: