From c0ecfb072b02d5764e387af560bfedb1cadcac1c Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Tue, 31 Jan 2012 09:45:13 -0800 Subject: [PATCH] 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 --- src/pkg/net/http/transport.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pkg/net/http/transport.go b/src/pkg/net/http/transport.go index 4de070f01f..693215edd4 100644 --- a/src/pkg/net/http/transport.go +++ b/src/pkg/net/http/transport.go @@ -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") -- 2.50.0