Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
net: broken pipe errors starting from Go 1.12 when using a deadline #35373
What version of Go are you using (
@ianlancetaylor , Sorry for the late reply.
Did some more research - its indeed happening when trying to close a web socket from the client side which was already closed by the server because of timeout.
I stand correct on what I said before - setting the deadline to 20 minutes does make the tests pass, its all a matter of if the test runs before the deadline is met.
however, after setting the deadline to about a minute, I added timestamps to a specific test and notice something strange - on version 1.11 and version 1.12 the test takes about 5 minutes, but only the web-socket connection of version 1.12 is being closed beforehand for some reason - making the test failed when both runs call ws.Close() at the end.
am I missing something in terms of why is my connection at 1.11 staying alive until the end (ws.Close() called) compared to 1.12?
First of all, its important to add that this does not happen on MAC os, and it does fails on CentOS
@networkimprov I tried disabling the default enabled KeepAlive at the client (as stated in the documentation - setting KeepAlive to a negative value.
What did work is setting the client's Dialer timeout to
what causes my client to throw timeout?
As stated above - "also tried upgrading gorilla package to their latest 1.4"
I just want to add that if the client OR the server is running on go 1.11 (one of them is enough), everything works.
I'll try to come up with two simple programs that reproduces the problem, thanks for your help