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: no IO deadline support for Plan 9 #11932

Closed
mikioh opened this issue Jul 30, 2015 · 9 comments

Comments

Projects
None yet
4 participants

@mikioh mikioh added the OS-Plan9 label Jul 30, 2015

@mikioh mikioh added this to the Unplanned milestone Jul 30, 2015

@bradfitz

This comment has been minimized.

Copy link
Member

commented Jul 30, 2015

This is basically a dup of #7237

/cc @0intro to decide whether to keep

@0intro 0intro self-assigned this Jul 30, 2015

@0intro

This comment has been minimized.

Copy link
Member

commented Jul 30, 2015

Yes, this is the long-standing issue with network i/o cancellations.
We can't implement deadlines as long as we don't have a reliable
way to cancel network connections.

@gopherbot

This comment has been minimized.

Copy link

commented Oct 16, 2015

CL https://golang.org/cl/15941 mentions this issue.

bradfitz added a commit that referenced this issue Oct 16, 2015

net: unblock plan9 TCP Read calls after socket close
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>

gopherbot pushed a commit that referenced this issue Apr 16, 2016

net: ignore lack of deadline support on Plan 9
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>
@gopherbot

This comment has been minimized.

Copy link

commented Apr 17, 2016

CL https://golang.org/cl/22144 mentions this issue.

@bradfitz

This comment has been minimized.

Copy link
Member

commented Apr 17, 2016

@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 t.Skip calls from the net and net/http packages if possible?

@0intro

This comment has been minimized.

Copy link
Member

commented Apr 17, 2016

I've noticed some tests that could be enabled. I'll do a full review of the disabled tests,
then I'll send the changes, once CL 22144 will be submitted.

gopherbot pushed a commit that referenced this issue Apr 18, 2016

net: fix plan9 after context change, propagate contexts more
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>

gopherbot pushed a commit that referenced this issue Apr 19, 2016

net: enable TestDialParallel, TestDialerFallbackDelay and TestDialCan…
…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>

gopherbot pushed a commit that referenced this issue Apr 19, 2016

net: enable DualStack mode on Plan 9
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>
@bradfitz

This comment has been minimized.

Copy link
Member

commented Apr 27, 2016

What remains here?

@gopherbot

This comment has been minimized.

Copy link

commented Oct 3, 2016

CL https://golang.org/cl/30164 mentions this issue.

gopherbot pushed a commit that referenced this issue Oct 3, 2016

net: clarify that Conn deadlines also affect currently-blocked I/O
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>
@gopherbot

This comment has been minimized.

Copy link

commented Oct 26, 2016

CL https://golang.org/cl/31521 mentions this issue.

@gopherbot gopherbot closed this in adb384a Nov 12, 2016

@golang golang locked and limited conversation to collaborators Nov 12, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.