net: Accept() blocks forever, timeout setting doesn't work on Windows XP SP3 #23375
Comments
I've just tried to compile it on a previous stable version (go1.8.5 windows/386). The issue is the same. |
The first step to fixing this issue is understanding what a fix might look like. I assume that Windows XP does not support |
@ko80 I cannot reproduce your problem. I am using current Go tip. I changed Go network library a little (to add some debugging), like:
and I see this output
What do you see, if you make similar changes? Thank you. Alex |
@alexbrainman On Windows XP SP3 I see this:
However, on Windows 7 the app outputs this:
Thank you for your efforts to fix the issue. If it would be helpful, I can give you private access to a virtual machine running my Windows XP SP3 with Go 1.9.2 installed. |
@alexbrainman I've just checked the app with your patch on another installations of Windows XP SP3 and Windows XP SP2. In both cases it outputs this:
Obviously, this means my XP works in a different way. Unfortunately, I have no ideas what is wrong. I think, the issue should be closed as it is a failure on my particular installation of Windows XP SP3. Thanks to all for your time! |
That means
This looks strange, the only way this can happen is for
Cool, but that is not needed at this stage. I think you can debug things yourself just fine.
That looks exactly what I see here.
I am bit puzzled too.
Feel free to close the issue, if you like. Alex |
Closing per earlier comments. |
What version of Go are you using (
go version
)?go1.9.2
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?windows/386
What did you do?
I faced a critical issue while using go1.9.2 windows/386 on Windows XP SP3. The trouble is that Accept() blocks forever even if I set a timeout using SetDeadline(). It blocks forever until the program exits. I consider it critical because I can't stop listeners when I need to. Additionally, conn.Read() blocks forever as well, but I didn't include it to the example to make is simpler.
In contrast, when I run this program on Windows 7 under VirtualBox (on the same Windows XP SP3), Accept() successfully unblocks after a timeout period.
What did you expect to see?
Terminal output (Windows 7):
What did you see instead?
Terminal output (Windows XP SP3):
The text was updated successfully, but these errors were encountered: