]> Cypherpunks.ru repositories - gostls13.git/commitdiff
net/http: revert fix request canceler leak on connection close
authorAlexander Yastrebov <yastrebov.alex@gmail.com>
Wed, 23 Aug 2023 15:39:26 +0000 (15:39 +0000)
committerGopher Robot <gobot@golang.org>
Wed, 23 Aug 2023 15:58:12 +0000 (15:58 +0000)
This reverts CL 515796 due to a flaking test.

Updates #61708
Fixes #62224

Change-Id: I53911a07677d08c3196daaaa2708269593baf472
GitHub-Last-Rev: 3544648ecc3783dcb10d54fc2b266797c02f9a75
GitHub-Pull-Request: golang/go#62233
Reviewed-on: https://go-review.googlesource.com/c/go/+/522097
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/net/http/transport.go
src/net/http/transport_test.go

index c2376aa6615aeaedf539162ca9ba72548bf8823b..35dfe908d825f47a302f2b92b9d25c6ad960fea4 100644 (file)
@@ -2267,7 +2267,6 @@ func (pc *persistConn) readLoop() {
                        pc.t.cancelRequest(rc.cancelKey, rc.req.Context().Err())
                case <-pc.closech:
                        alive = false
-                       pc.t.setReqCanceler(rc.cancelKey, nil)
                }
 
                testHookReadLoopBeforeNextRead()
index 4ff26ff32af00a0e59b223e55580366d02e99f32..bcc26aa58e03fa491cb0c15b9c8c09ddcac56848 100644 (file)
@@ -6810,55 +6810,3 @@ func testRequestSanitization(t *testing.T, mode testMode) {
                resp.Body.Close()
        }
 }
-
-// Issue 61708
-func TestTransportAndServerSharedBodyReqCancelerCleanupOnConnectionClose(t *testing.T) {
-       run(t, testTransportAndServerSharedBodyReqCancelerCleanupOnConnectionClose, []testMode{http1Mode})
-}
-func testTransportAndServerSharedBodyReqCancelerCleanupOnConnectionClose(t *testing.T, mode testMode) {
-       const bodySize = 1 << 20
-
-       backend := newClientServerTest(t, mode, HandlerFunc(func(rw ResponseWriter, req *Request) {
-               io.Copy(rw, req.Body)
-       }))
-       t.Logf("Backend address: %s", backend.ts.Listener.Addr().String())
-
-       var proxy *clientServerTest
-       proxy = newClientServerTest(t, mode, HandlerFunc(func(rw ResponseWriter, req *Request) {
-               breq, _ := NewRequest("POST", backend.ts.URL, req.Body)
-
-               bresp, err := backend.c.Do(breq)
-               if err != nil {
-                       t.Fatalf("Unexpected proxy outbound request error: %v", err)
-               }
-               defer bresp.Body.Close()
-
-               _, err = io.Copy(rw, bresp.Body)
-               if err == nil {
-                       t.Fatalf("Expected proxy copy error")
-               }
-               t.Logf("Proxy copy error: %v", err)
-       }))
-       t.Logf("Proxy address: %s", proxy.ts.Listener.Addr().String())
-
-       req, _ := NewRequest("POST", proxy.ts.URL, io.LimitReader(neverEnding('a'), bodySize))
-       res, err := proxy.c.Do(req)
-       if err != nil {
-               t.Fatalf("Original request: %v", err)
-       }
-       // Close body without reading to trigger proxy copy error
-       res.Body.Close()
-
-       // Verify no outstanding requests after readLoop/writeLoop
-       // goroutines shut down.
-       waitCondition(t, 10*time.Millisecond, func(d time.Duration) bool {
-               n := backend.tr.NumPendingRequestsForTesting()
-               if n > 0 {
-                       if d > 0 {
-                               t.Logf("pending requests = %d after %v (want 0)", n, d)
-                       }
-                       return false
-               }
-               return true
-       })
-}