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
internal/poll: AcceptEx bug on unpatched Windows 8 / Server 2012 #41251
Comments
Is there a way to work around the problem other than applying the Windows patch? |
According this page https://github.com/golang/go/wiki/MinimumRequirements#windows Windows server 2012, non r2 is not supported. Also please note that Microsoft’s support for this version terminated in January 2020 |
@davecheney Windows Server 2012 (non-R2) is supported by Go per my understanding. The doc only says that Go team tests on 2012 R2. |
@ianlancetaylor The blog article mentioned that avoid blocking I/O on the thread issued AcceptEx. I didn’t test that. And I don’t know if it’s acceptable to re-introduce ioSrv for Windows netpoll. |
I think the correct resolution here is to simply require R2 for Windows 2012. It came out seven years ago, it doesn't seem like an unreasonable requirement. |
Windows Server 2012 (non-R2) is supported by Microsoft until 2023-10-10. |
But the question is: why should we support it? The Go team has limited resources and we can't support everything. What is the case for supporting Windows 2012 without R2? |
I'm not asking Go team to continue support for Windows 2012 without R2. The whole ecosystem that relies on Windows does not move as fast as Go, especially in some enterprise environment. |
Understood, thanks. |
A known issue exists in afd.sys on Windows 8 / Server 2012 that may stop TCP sockets from accepting incoming connections. KB2779768 is required to fix this issue. This may worth a workaround in Go runtime.
The root cause of this issue is documented in a SQL Server KB article KB2919863.
This issue can also be found on stackoverflow and a blog article.
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system are you using?
Unpatched Windows Server 2012 (w/o R2), build 6.2.9200
What did you do?
What did you expect to see?
The test should pass.
What did you see instead?
The test proxy did not respond to the HTTP request (observed in Wireshark).
The test proxy is not aware of incoming TCP connection, and there are two blocking ReadFile calls around (observed in Rohitab API Monitor).
The test timeouts after 9 minutes.
log
The text was updated successfully, but these errors were encountered: