commit | 96186a58e3ceb6bc3703f9dae0c37e2118a01b0d | [log] [tgz] |
---|---|---|
author | Daniel Martí <mvdan@mvdan.cc> | Thu Jul 05 17:46:51 2018 +0100 |
committer | Brad Fitzpatrick <bradfitz@golang.org> | Fri Jul 06 02:13:27 2018 +0000 |
tree | 86abdd7f6561c66c19699dad0536acb25d2b9202 | |
parent | efea01788d5d8b14426e31698ca30f27365c0670 [diff] |
net/http: deflake TestServerShutdownStateNew This function tests that calling Shutdown on a Server that has a "new" connection yet to write any bytes, in which case it should wait for five seconds until considering the connection as "idle". However, the test was flaky. If Shutdown happened to run before the server accepted the connection, the connection would immediately be rejected as the server is already closed, as opposed to being accepted in the "new" state. Then, Shutdown would return almost immediately, as it had no connections to wait for: --- FAIL: TestServerShutdownStateNew (2.00s) serve_test.go:5603: shutdown too soon after 49.41µs serve_test.go:5617: timeout waiting for Read to unblock Fix this by making sure that the connection has been accepted before calling Shutdown. Verified that the flake is gone after 50k concurrent runs of the test with no failures, whereas the test used to fail around 10% of the time on my laptop: go test -c && stress -p 256 ./http.test -test.run TestServerShutdownStateNew Fixes #26233. Change-Id: I819d7eedb67c48839313427675facb39d9c17257 Reviewed-on: https://go-review.googlesource.com/122355 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.