Skip to content

Commit eacf9f6

Browse files
BenDoanshin-
authored andcommitted
avoid race condition in containers.list
Signed-off-by: Ben Doan <[email protected]>
1 parent cc953cf commit eacf9f6

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

docker/models/containers.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from ..constants import DEFAULT_DATA_CHUNK_SIZE
77
from ..errors import (
88
ContainerError, DockerException, ImageNotFound,
9-
create_unexpected_kwargs_error
9+
NotFound, create_unexpected_kwargs_error
1010
)
1111
from ..types import HostConfig
1212
from ..utils import version_gte
@@ -896,7 +896,14 @@ def list(self, all=False, before=None, filters=None, limit=-1, since=None,
896896
if sparse:
897897
return [self.prepare_model(r) for r in resp]
898898
else:
899-
return [self.get(r['Id']) for r in resp]
899+
containers = []
900+
for r in resp:
901+
try:
902+
containers.append(self.get(r['Id']))
903+
# a container may have been removed while iterating
904+
except NotFound:
905+
pass
906+
return containers
900907

901908
def prune(self, filters=None):
902909
return self.client.api.prune_containers(filters=filters)

0 commit comments

Comments
 (0)