1
0
mirror of https://github.com/golang/go synced 2024-11-24 22:57:57 -07:00

net/http: close client fd sooner on response read error

This fixes some test noise in TestStressSurpriseServerCloses when
ulimit -n something low, like 256 on a Mac.

Previously, when the server closed on us and we were expecting more
responses (like we are in that test), we'd read an "Unexpected EOF"
and just forget about the client's net.Conn.  Now it's closed,
rather than waiting on the finalizer to release the fd.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5602043
This commit is contained in:
Brad Fitzpatrick 2012-01-31 09:45:13 -08:00
parent 847197d339
commit c0ecfb072b

View File

@ -535,7 +535,9 @@ func (pc *persistConn) readLoop() {
}
resp, err := ReadResponse(pc.br, rc.req)
if err == nil {
if err != nil {
pc.close()
} else {
hasBody := rc.req.Method != "HEAD" && resp.ContentLength != 0
if rc.addedGzip && hasBody && resp.Header.Get("Content-Encoding") == "gzip" {
resp.Header.Del("Content-Encoding")