moby icon indicating copy to clipboard operation
moby copied to clipboard

Volumes Returned by List Volumes Filtered Dangling API Return In-Use Containers

Open belugabehr opened this issue 2 years ago • 0 comments

Description

This may be related to (and fixed by) #44512, but I wanted to bring it up as separate issue just in case.

We are gathering a list of dangling volumes, iterating over the list, deleting each one.

However, some of the dangling volumes (i.e., not referenced by any containers) are failing to delete with the error:

com.github.dockerjava.api.exception.ConflictException: Status 409: remove 74c0c8cb7c14b77eb445142018b31309ef8ecf0cbbeb7eff0874c2e0fc8f6170: volume is in use - [7dd18196c01196eb547ed31fee9d3cee4b9b644e11c33e713d04fe62f4031737]

Volumes that fail to delete in this manner are successfully deleted on a later retry.

As an example:

# Consider a88def775aa002b128e8e27d9a8f311bebfaa78404be73c7b3c288daa9167dbe

# Register the new volume
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.190146857Z" level=debug msg="Registering new volume reference: driver \"local\", name \"a88def775aa002b128e8e27d9a8f311bebfaa78404be73c7b3c288daa9167dbe\""

# Get the volumes (with dangling filter)
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.190859107Z" level=debug msg="Calling GET /v1.23/volumes?filters=%7B%22dangling%22%3A%5B%22true%22%5D%7D"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.190954815Z" level=debug msg=VolumeStore.Find ByType=service.andCombinator ByValue="[0x55f1071c3500 false]"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.191652378Z" level=debug msg="Probing all drivers for volume with name: 101f4c3de9ee7465f9b5aa6c86d681dd99362f301eccac86044b89a90b33a72c"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.191704707Z" level=debug msg="Registering new volume reference: driver \"local\", name \"101f4c3de9ee7465f9b5aa6c86d681dd99362f301eccac86044b89a90b33a72c\""
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.193239809Z" level=debug msg="Probing all drivers for volume with name: 45d1ac9b0bacf8f18e93674be97bda4d0642c382e4f2bc38b2a0c8bcd421e96f"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.193288732Z" level=debug msg="Registering new volume reference: driver \"local\", name \"45d1ac9b0bacf8f18e93674be97bda4d0642c382e4f2bc38b2a0c8bcd421e96f\""
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.195397265Z" level=debug msg="Probing all drivers for volume with name: 0341d0dd59bdd9a54228f6be4d5b82fdb689b2f9b90b91740c3698f50fc85809"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.195472524Z" level=debug msg="Registering new volume reference: driver \"local\", name \"0341d0dd59bdd9a54228f6be4d5b82fdb689b2f9b90b91740c3698f50fc85809\""
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.196706351Z" level=debug msg="Probing all drivers for volume with name: 75218b76b4d9462867ff86684751d54b85fe2c579d9c0ad7ade8a49b3fa2c9df"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.196786971Z" level=debug msg="Registering new volume reference: driver \"local\", name \"75218b76b4d9462867ff86684751d54b85fe2c579d9c0ad7ade8a49b3fa2c9df\""
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.198467615Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/data01, to fbc54eb92fa771703c8a03346dd947f1d0d19b6cdefa71033e204ae829d3c161"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.198530543Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/root, to 98cdbc6ef31800517bb7e9ab97a30311a195458a74b998914f7e73ecd746e539"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.198718058Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/run, to a999ab26361ae7a0df1c31ae71fd74bb82a0020aa2076514949f02ed0bc1659b"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.201148603Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/private, to 3434fdb44fe71dddd7f10d77cd83a1a4d257d98f2567d78c0d4622c01f5942ca"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.201209862Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/data02, to 589f367db89203d5be640e107722eb70aeccfd1217e39f0ffb3b459eb9fbca1c"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.201245366Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/opt, to 0341d0dd59bdd9a54228f6be4d5b82fdb689b2f9b90b91740c3698f50fc85809"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.203043374Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/data01, to 096a286b24cd9231fbeb41448b3b2dc3a20428f872739474d59c1ae1b04be949"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.203104635Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/root, to dddc83f37a9f91aa1598c61c38d21924c453a795f718de04d76342da8e8a5573"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.203280672Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/private, to 8b306a1f019fafbd997e548d5393c3554384d74f8e8d43fcb7a22fd9971e9cdd"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.203321239Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/opt, to a88def775aa002b128e8e27d9a8f311bebfaa78404be73c7b3c288daa9167dbe"
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.224679733Z" level=debug msg="Calling DELETE /v1.23/volumes/3434fdb44fe71dddd7f10d77cd83a1a4d257d98f2567d78c0d4622c01f5942ca"

# Attempting to delete the target volume because it was returned in the list of dangling volumes - fails
Dec 14 21:50:28 host.domain dockerd[20062]: time="2022-12-14T21:50:28.242236191Z" level=debug msg="Calling DELETE /v1.23/volumes/a88def775aa002b128e8e27d9a8f311bebfaa78404be73c7b3c288daa9167dbe"
Dec 14 21:50:29 host.domain dockerd[20062]: time="2022-12-14T21:50:29.777067140Z" level=debug msg="uploaded layer sha256:b930bd81aea92720aac658fe6b28a4453b714144eb75158961cd8085bff3f2d1 (sha256:d09e88c5d42bb5dd9ec754ae6a67a68216c5bcb5fc752a05afe468123f0e2e5b), 81196715 bytes"
Dec 14 21:50:29 host.domain dockerd[20062]: time="2022-12-14T21:50:29.917729542Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/run, to b76eff516b97ce0a3b132f5b1a381805e75518a1fba9418ea5bb46f65a516689"
Dec 14 21:50:29 host.domain dockerd[20062]: time="2022-12-14T21:50:29.920051731Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/var, to fd0994af70c8ca6eafbd2244f19a96ed5a2672a751a8d08302e7708efeedae29"
Dec 14 21:50:29 host.domain dockerd[20062]: time="2022-12-14T21:50:29.946944939Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/var, to 101f4c3de9ee7465f9b5aa6c86d681dd99362f301eccac86044b89a90b33a72c"
Dec 14 21:50:30 host.domain dockerd[20062]: time="2022-12-14T21:50:30.485558352Z" level=debug msg="copying image data from 3f88f593a7763ee17ade04df993fd705bda0909777dac6d9f09f894061b78679:/tmp, to 45d1ac9b0bacf8f18e93674be97bda4d0642c382e4f2bc38b2a0c8bcd421e96f"
Dec 14 21:50:30 host.domain dockerd[20062]: time="2022-12-14T21:50:30.512319270Z" level=debug msg="copying image data from b79f0c8d366ce63e83c2158f3e69f174488d08d8a465b3a015537edf9b75f6e7:/tmp, to d412c163b365a2d1e1ab712055e702a9b9caa1687bc77b5f2107cc043d09c4d8"D

# Some time later after retry - successful
Dec 14 21:53:32 host.domain dockerd[20062]: time="2022-12-14T21:53:32.060037672Z" level=debug msg="Removing volume reference: driver local, name a88def775aa002b128e8e27d9a8f311bebfaa78404be73c7b3c288daa9167dbe"

Reproduce

  1. Create container
  2. List dangling volumes
  3. Delete dangling volumes
  4. Start container

Expected behavior

Only dangling containers should be returned and they should be allowed to be removed (assuming no additional interactions with the daemon in the meanwhile).

docker version

Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.15.14
 Git commit:        f0df350
 Built:             Wed Nov 17 03:05:36 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.14
  Git commit:       b0f5bc3
  Built:            Wed Nov 17 03:06:14 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0
  GitCommit:        84113eef6fc27af1b01b3181f31bbaf708715301
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: (redacted)
  Log: (redacted)
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc version: 84113eef6fc27af1b01b3181f31bbaf708715301
 init version: de40ad0
 Security Options:
  (redacted)
 Kernel Version: 5.4.225-139.416.amzn2int.x86_64
 Operating System: Amazon Linux 2
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.36GiB
 Name: (redacted)
 ID: (redacted)
 Docker Root Dir: /local/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  (redacted)
 Live Restore Enabled: false

Additional Info

No response

belugabehr avatar Dec 17 '22 03:12 belugabehr