diff options
author | Valentin Rothberg <vrothberg@suse.com> | 2018-08-10 11:50:25 +0200 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-08-10 13:26:58 +0000 |
commit | c27b7cdc933f7102a3d093fa303f3ddb48209838 (patch) | |
tree | d01f31a03d4da46577db354050a16f83b90bf7f0 | |
parent | 38b3abf915de16a0ac2e7ed84bac603f90e88018 (diff) | |
download | podman-c27b7cdc933f7102a3d093fa303f3ddb48209838.tar.gz podman-c27b7cdc933f7102a3d093fa303f3ddb48209838.tar.bz2 podman-c27b7cdc933f7102a3d093fa303f3ddb48209838.zip |
removeContainer: fix deadlock
When checking if the container has already been removed, use
c.state.HasContainer() instead of the runtime's API to avoid
trying to take the already acquired lock.
Fixes: #1245
Signed-off-by: Valentin Rothberg <vrothberg@suse.com>
Closes: #1251
Approved by: baude
-rw-r--r-- | libpod/runtime_ctr.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libpod/runtime_ctr.go b/libpod/runtime_ctr.go index ffad9d649..051b3e85e 100644 --- a/libpod/runtime_ctr.go +++ b/libpod/runtime_ctr.go @@ -174,7 +174,7 @@ func (r *Runtime) RemoveContainer(ctx context.Context, c *Container, force bool) // Locks the container, but does not lock the runtime func (r *Runtime) removeContainer(ctx context.Context, c *Container, force bool) error { if !c.valid { - if ok, _ := r.HasContainer(c.ID()); !ok { + if ok, _ := r.state.HasContainer(c.ID()); !ok { // Container probably already removed // Or was never in the runtime to begin with return nil |