Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
| ... | ... |
@@ -180,6 +180,7 @@ func (d *Daemon) getClientConfig() (*clientConfig, error) {
|
| 180 | 180 |
if err := sockets.ConfigureTransport(transport, proto, addr); err != nil {
|
| 181 | 181 |
return nil, err |
| 182 | 182 |
} |
| 183 |
+ transport.DisableKeepAlives = true |
|
| 183 | 184 |
|
| 184 | 185 |
return &clientConfig{
|
| 185 | 186 |
transport: transport, |
| ... | ... |
@@ -301,6 +302,7 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
|
| 301 | 301 |
if err != nil {
|
| 302 | 302 |
continue |
| 303 | 303 |
} |
| 304 |
+ resp.Body.Close() |
|
| 304 | 305 |
if resp.StatusCode != http.StatusOK {
|
| 305 | 306 |
d.log.Logf("[%s] received status != 200 OK: %s\n", d.id, resp.Status)
|
| 306 | 307 |
} |
| ... | ... |
@@ -1169,6 +1169,7 @@ func (s *DockerSuite) TestContainerAPIChunkedEncoding(c *check.C) {
|
| 1169 | 1169 |
return nil |
| 1170 | 1170 |
}) |
| 1171 | 1171 |
c.Assert(err, checker.IsNil, check.Commentf("error creating container with chunked encoding"))
|
| 1172 |
+ defer resp.Body.Close() |
|
| 1172 | 1173 |
c.Assert(resp.StatusCode, checker.Equals, http.StatusCreated) |
| 1173 | 1174 |
} |
| 1174 | 1175 |
|
| ... | ... |
@@ -258,8 +258,9 @@ func createDeletePredefinedNetwork(c *check.C, name string) {
|
| 258 | 258 |
|
| 259 | 259 |
func isNetworkAvailable(c *check.C, name string) bool {
|
| 260 | 260 |
resp, body, err := request.Get(daemonHost(), "/networks") |
| 261 |
- c.Assert(resp.StatusCode, checker.Equals, http.StatusOK) |
|
| 262 | 261 |
c.Assert(err, checker.IsNil) |
| 262 |
+ defer resp.Body.Close() |
|
| 263 |
+ c.Assert(resp.StatusCode, checker.Equals, http.StatusOK) |
|
| 263 | 264 |
|
| 264 | 265 |
nJSON := []types.NetworkResource{}
|
| 265 | 266 |
err = json.NewDecoder(body).Decode(&nJSON) |
| ... | ... |
@@ -308,12 +309,13 @@ func getNetworkResource(c *check.C, id string) *types.NetworkResource {
|
| 308 | 308 |
|
| 309 | 309 |
func createNetwork(c *check.C, config types.NetworkCreateRequest, shouldSucceed bool) string {
|
| 310 | 310 |
resp, body, err := request.Post(daemonHost(), "/networks/create", request.JSONBody(config)) |
| 311 |
+ c.Assert(err, checker.IsNil) |
|
| 312 |
+ defer resp.Body.Close() |
|
| 311 | 313 |
if !shouldSucceed {
|
| 312 | 314 |
c.Assert(resp.StatusCode, checker.Not(checker.Equals), http.StatusCreated) |
| 313 | 315 |
return "" |
| 314 | 316 |
} |
| 315 | 317 |
|
| 316 |
- c.Assert(err, checker.IsNil) |
|
| 317 | 318 |
c.Assert(resp.StatusCode, checker.Equals, http.StatusCreated) |
| 318 | 319 |
|
| 319 | 320 |
var nr types.NetworkCreateResponse |
| ... | ... |
@@ -345,10 +347,11 @@ func disconnectNetwork(c *check.C, nid, cid string) {
|
| 345 | 345 |
|
| 346 | 346 |
func deleteNetwork(c *check.C, id string, shouldSucceed bool) {
|
| 347 | 347 |
resp, _, err := request.Delete(daemonHost(), "/networks/"+id) |
| 348 |
+ c.Assert(err, checker.IsNil) |
|
| 349 |
+ defer resp.Body.Close() |
|
| 348 | 350 |
if !shouldSucceed {
|
| 349 | 351 |
c.Assert(resp.StatusCode, checker.Not(checker.Equals), http.StatusOK) |
| 350 | 352 |
return |
| 351 | 353 |
} |
| 352 | 354 |
c.Assert(resp.StatusCode, checker.Equals, http.StatusNoContent) |
| 353 |
- c.Assert(err, checker.IsNil) |
|
| 354 | 355 |
} |
| ... | ... |
@@ -288,7 +288,7 @@ func (s *DockerSuite) TestLogsFollowGoroutinesWithStdout(c *check.C) {
|
| 288 | 288 |
}() |
| 289 | 289 |
c.Assert(<-chErr, checker.IsNil) |
| 290 | 290 |
c.Assert(cmd.Process.Kill(), checker.IsNil) |
| 291 |
- |
|
| 291 |
+ r.Close() |
|
| 292 | 292 |
// NGoroutines is not updated right away, so we need to wait before failing |
| 293 | 293 |
c.Assert(waitForGoroutines(nroutines), checker.IsNil) |
| 294 | 294 |
} |
| ... | ... |
@@ -72,21 +72,25 @@ func (s *DockerRegistrySuite) TestUserAgentPassThrough(c *check.C) {
|
| 72 | 72 |
) |
| 73 | 73 |
|
| 74 | 74 |
buildReg, err := registry.NewMock(c) |
| 75 |
+ defer buildReg.Close() |
|
| 75 | 76 |
c.Assert(err, check.IsNil) |
| 76 | 77 |
registerUserAgentHandler(buildReg, &buildUA) |
| 77 | 78 |
buildRepoName := fmt.Sprintf("%s/busybox", buildReg.URL())
|
| 78 | 79 |
|
| 79 | 80 |
pullReg, err := registry.NewMock(c) |
| 81 |
+ defer pullReg.Close() |
|
| 80 | 82 |
c.Assert(err, check.IsNil) |
| 81 | 83 |
registerUserAgentHandler(pullReg, &pullUA) |
| 82 | 84 |
pullRepoName := fmt.Sprintf("%s/busybox", pullReg.URL())
|
| 83 | 85 |
|
| 84 | 86 |
pushReg, err := registry.NewMock(c) |
| 87 |
+ defer pushReg.Close() |
|
| 85 | 88 |
c.Assert(err, check.IsNil) |
| 86 | 89 |
registerUserAgentHandler(pushReg, &pushUA) |
| 87 | 90 |
pushRepoName := fmt.Sprintf("%s/busybox", pushReg.URL())
|
| 88 | 91 |
|
| 89 | 92 |
loginReg, err := registry.NewMock(c) |
| 93 |
+ defer loginReg.Close() |
|
| 90 | 94 |
c.Assert(err, check.IsNil) |
| 91 | 95 |
registerUserAgentHandler(loginReg, &loginUA) |
| 92 | 96 |
|
| ... | ... |
@@ -3102,12 +3102,16 @@ func (s *DockerSuite) TestRunUnshareProc(c *check.C) {
|
| 3102 | 3102 |
} |
| 3103 | 3103 |
}() |
| 3104 | 3104 |
|
| 3105 |
+ var retErr error |
|
| 3105 | 3106 |
for i := 0; i < 3; i++ {
|
| 3106 | 3107 |
err := <-errChan |
| 3107 |
- if err != nil {
|
|
| 3108 |
- c.Fatal(err) |
|
| 3108 |
+ if retErr == nil && err != nil {
|
|
| 3109 |
+ retErr = err |
|
| 3109 | 3110 |
} |
| 3110 | 3111 |
} |
| 3112 |
+ if retErr != nil {
|
|
| 3113 |
+ c.Fatal(retErr) |
|
| 3114 |
+ } |
|
| 3111 | 3115 |
} |
| 3112 | 3116 |
|
| 3113 | 3117 |
func (s *DockerSuite) TestRunPublishPort(c *check.C) {
|
| ... | ... |
@@ -38,6 +38,7 @@ func makefile(contents string) (string, func(), error) {
|
| 38 | 38 |
// attempt to contact any v1 registry endpoints. |
| 39 | 39 |
func (s *DockerRegistrySuite) TestV2Only(c *check.C) {
|
| 40 | 40 |
reg, err := registry.NewMock(c) |
| 41 |
+ defer reg.Close() |
|
| 41 | 42 |
c.Assert(err, check.IsNil) |
| 42 | 43 |
|
| 43 | 44 |
reg.RegisterHandler("/v2/", func(w http.ResponseWriter, r *http.Request) {
|
| ... | ... |
@@ -70,6 +71,7 @@ func (s *DockerRegistrySuite) TestV2Only(c *check.C) {
|
| 70 | 70 |
// login, push, pull, build & run |
| 71 | 71 |
func (s *DockerRegistrySuite) TestV1(c *check.C) {
|
| 72 | 72 |
reg, err := registry.NewMock(c) |
| 73 |
+ defer reg.Close() |
|
| 73 | 74 |
c.Assert(err, check.IsNil) |
| 74 | 75 |
|
| 75 | 76 |
v2Pings := 0 |
| ... | ... |
@@ -129,6 +129,7 @@ func NewClient(host string) (*http.Client, error) {
|
| 129 | 129 |
} |
| 130 | 130 |
transport = &http.Transport{TLSClientConfig: tlsConfig}
|
| 131 | 131 |
} |
| 132 |
+ transport.DisableKeepAlives = true |
|
| 132 | 133 |
err = sockets.ConfigureTransport(transport, proto, addr) |
| 133 | 134 |
return &http.Client{
|
| 134 | 135 |
Transport: transport, |