Skip to content

Running containers in parallel on docker 0.6.6 produces error: Cannot find child... #2586

@ghost

Description

Specs:

Client version: 0.6.6
Go version (client): go1.2rc3
Git commit (client): 6d42040
Server version: 0.6.6
Git commit (server): 6d42040
Go version (server): go1.2rc3
Last stable version: 0.6.6

Linux mydockerhost 3.8.0-32-generic #47~precise1-Ubuntu SMP Wed Oct 2 16:19:35 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Problem:
When trying to 'run' containers in parallel, about 1/2 of them fail.

Reproduction:

  • Install docker 0.6.6
  • Pull image of your choice.. I'm using 'centos'
  • Create a script or in 2 separate terminals 'run' (using CLI, but REST API will repo as well) the image a handful or times in succession. In essence this is parallel 'run' of a single image and mimics what might happen if 2 users are trying to run an image at the same time.
  • About 1/2 the run container calls fail.

Docker log snippet

[debug] api.go:999 Calling POST /containers/create
2013/11/07 09:19:25 POST /v1.6/containers/create
[debug] api.go:999 Calling POST /containers/{name:.*}/start
2013/11/07 09:19:25 POST /v1.6/containers/532ad60d936a/start
[error] api.go:1025 Error: Cannot start container 532ad60d936a: Cannot find child for /crimson_lion
[error] api.go:79 HTTP Error: statusCode=500 Cannot start container 532ad60d936a: Cannot find child for /crimson_
lion
[debug] api.go:999 Calling POST /containers/create
2013/11/07 09:19:25 POST /v1.6/containers/create
[error] api.go:1025 Error: Conflict, /crimson_lion already exists.
[error] api.go:79 HTTP Error: statusCode=409 Conflict, /crimson_lion already exists.
[debug] api.go:999 Calling POST /containers/{name:.*}/start
2013/11/07 09:19:25 POST /v1.6/containers/7bd5b4eb203c/start
[debug] container.go:1202 monitor: waiting for container 7bd5b4eb203c82721ec0ee0629e23a176b280312a2673182350c0ccf
6c7ce036 using cmd.Wait

On the CLI you'll see the same:

2013/11/07 09:19:25 Error: Cannot start container 532ad60d936a: Cannot find child for /crimson_lion
2013/11/07 09:19:25 Error: Conflict, /crimson_lion already exists.

Notes

  • In the above log snippet I'm not using the -name parameter. However even if you generate a random name for each container this scenario still fails. Race condition?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions