From 634d7c920176c726b8d32d8aee50c8073f4892a3 Mon Sep 17 00:00:00 2001 From: jingrui Date: Sun, 20 Jan 2019 15:35:57 +0800 Subject: [PATCH 068/111] pause: fix docker stop stuck on paused container reason: docker-18.09 support docker stop while container is paused. ref 7aed75f09c * Allow stopping of paused container. now docker function is moved to docker, so we still have to check container paused status. Change-Id: I60731c76808abb5a76daf96c2aba656d73a87e96 Signed-off-by: jingrui --- components/engine/daemon/kill.go | 5 +++++ components/engine/daemon/unpause.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/components/engine/daemon/kill.go b/components/engine/daemon/kill.go index 3e6457e952..5b2e497604 100644 --- a/components/engine/daemon/kill.go +++ b/components/engine/daemon/kill.go @@ -66,6 +66,11 @@ func (daemon *Daemon) killWithSignal(container *containerpkg.Container, sig int) daemon.stopHealthchecks(container) + // We could unpause the container for them rather than returning this error + if container.Paused { + return fmt.Errorf("Container %s is paused. Unpause the container before stopping or killing", container.ID) + } + if !container.Running { return errNotRunning(container.ID) } diff --git a/components/engine/daemon/unpause.go b/components/engine/daemon/unpause.go index 290d2b1d0c..2d3c056566 100644 --- a/components/engine/daemon/unpause.go +++ b/components/engine/daemon/unpause.go @@ -23,6 +23,11 @@ func (daemon *Daemon) containerUnpause(container *container.Container) error { container.Lock() defer container.Unlock() + // We cannot unpause the container which is not running + if !container.Running { + return fmt.Errorf("Container %s is not running", container.ID) + } + // We cannot unpause the container which is not paused if !container.Paused { return fmt.Errorf("Container %s is not paused", container.ID) -- 2.17.1