diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-02-25 13:17:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-25 13:17:12 +0100 |
commit | 6babc9f20ca9e3633da1792a31d0391bde6201b6 (patch) | |
tree | 9627ab8a289952c5902ef45a09fab6cfbd143954 /libpod/runtime_ctr.go | |
parent | 8a30759b6b7f73c76c90e0931e6cf1ca3d94ee61 (diff) | |
parent | 4004f646cd7a99f86b2098587c256071a89a4dc7 (diff) | |
download | podman-6babc9f20ca9e3633da1792a31d0391bde6201b6.tar.gz podman-6babc9f20ca9e3633da1792a31d0391bde6201b6.tar.bz2 podman-6babc9f20ca9e3633da1792a31d0391bde6201b6.zip |
Merge pull request #5305 from mheon/check_for_common_deadlocks
Add basic deadlock detection for container start/remove
Diffstat (limited to 'libpod/runtime_ctr.go')
-rw-r--r-- | libpod/runtime_ctr.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libpod/runtime_ctr.go b/libpod/runtime_ctr.go index 3ad09f27c..39284026c 100644 --- a/libpod/runtime_ctr.go +++ b/libpod/runtime_ctr.go @@ -412,6 +412,9 @@ func (r *Runtime) removeContainer(ctx context.Context, c *Container, force bool, } // Lock the pod while we're removing container + if pod.config.LockID == c.config.LockID { + return errors.Wrapf(define.ErrWillDeadlock, "container %s and pod %s share lock ID %d", c.ID(), pod.ID(), c.config.LockID) + } pod.lock.Lock() defer pod.lock.Unlock() if err := pod.updatePod(); err != nil { |