daemon: Ignore nonexistent containers when listing containers
The name/ID relationships are maintained separately from the memdb and can be out of sync from any particular memdb snapshot. If a container does not exist in the memdb, we must accept this as normal and not fail the listing. This is consistent with what the code used to do before memdb was introduced. Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl> Upstream-commit: d257a63fb6a2ad0c2369981914544add389917bf Component: engine
This commit is contained in:
committed by
Sebastiaan van Stijn
parent
8e86b3a04f
commit
c5ade3e304
@@ -162,11 +162,13 @@ func (daemon *Daemon) filterByNameIDMatches(view container.View, ctx *listContex
|
||||
cntrs := make([]container.Snapshot, 0, len(matches))
|
||||
for id := range matches {
|
||||
c, err := view.Get(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if c != nil {
|
||||
switch err.(type) {
|
||||
case nil:
|
||||
cntrs = append(cntrs, *c)
|
||||
case container.NoSuchContainerError:
|
||||
// ignore error
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user