Ver código fonte

Merge pull request #3927 from nordligulv/patch-1

client: fix goroutine leak in unreleased context
Xiang Li 10 anos atrás
pai
commit
e8eb3d7744
1 arquivos alterados com 4 adições e 1 exclusões
  1. 4 1
      client/client.go

+ 4 - 1
client/client.go

@@ -378,9 +378,12 @@ func (c *simpleHTTPClient) Do(ctx context.Context, act httpAction) (*http.Respon
 		return nil, nil, err
 		return nil, nil, err
 	}
 	}
 
 
-	hctx, hcancel := context.WithCancel(ctx)
+	var hctx context.Context
+	var hcancel context.CancelFunc
 	if c.headerTimeout > 0 {
 	if c.headerTimeout > 0 {
 		hctx, hcancel = context.WithTimeout(ctx, c.headerTimeout)
 		hctx, hcancel = context.WithTimeout(ctx, c.headerTimeout)
+	} else {
+		hctx, hcancel = context.WithCancel(ctx)
 	}
 	}
 	defer hcancel()
 	defer hcancel()