Skip to content

cancelling a pull causes partially or fully downloaded layers to be discarded #26146

@vikstrous

Description

@vikstrous

I'm working from an unreliable network connection and sometimes I need to pull large images. When I'm pulling a large image and the wifi disconnects and then reconnects, the download hangs. Then I have to ctrl+c to cancel the pull and try it again. When I do this, all layers pulled during the previous attempt have to be re-pulled from scratch. This means that if I never have a stable connection for long enough to pull the entire image without interruptions I can't pull the image at all.

Output of docker version:

Client:
 Version:      1.12.1-rc2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   236317f-unsupported
 Built:        Thu Aug 18 17:11:17 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1-rc2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   236317f-unsupported
 Built:        Thu Aug 18 17:11:17 2016
 OS/Arch:      linux/amd64

This is a slightly hacked up version, but the changes are not related. It's basically 1.12.1.

Output of docker info:

Containers: 10
 Running: 10
 Paused: 0
 Stopped: 0
Images: 110
Server Version: 1.12.1-rc2
Storage Driver: overlay2
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.7.2-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.708 GiB
Name: compooter
ID: GKSI:YHZC:YPNI:PAGO:EYPD:AYME:K6BY:BAIH:EBKQ:SOAK:WUFP:6MJM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 62
 Goroutines: 113
 System Time: 2016-08-30T08:12:15.46410461-07:00
 EventsListeners: 1
Username: viktorstanchev
Registry: https://index.docker.io/v1/
Cluster Store: etcd://172.17.0.1:12379
Cluster Advertise: 172.17.0.1:12376
Insecure Registries:
 192.168.0.106
 dtr2-2061409770.us-west-2.elb.amazonaws.com
 new-1428125395.us-west-2.elb.amazonaws.com
 172.17.0.1
 127.0.0.0/8

Additional environment details (AWS, VirtualBox, physical, etc.):
physical laptop

Steps to reproduce the issue:

  1. pull a large image
  2. disconnect from the network and re-connect
  3. all layer downloads hang; ctrl+c to cancel
  4. pull again

Describe the results you received:
pulls from scratch

Describe the results you expected:
continues where it left off

Additional information you deem important (e.g. issue happens only occasionally):
This behaviour makes sense because otherwise a mechanism for cleaning up unused partial downloads is necessary, but I think that keeping these partial downloads around for about a day or some other arbitrary time period is reasonable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/distributionImage Distributionkind/enhancementEnhancements are not bugs or new features but can improve usability or performance.version/1.12

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions