From fde455a0e2995fd4e1ed35bf34b2b70a0efe22af Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Thu, 7 Jul 2016 22:19:48 -0400 Subject: [PATCH] Fix daemon not cleaned up w/ live restore enabled This patch makes sure daemon resources are cleaned up on shutdown if there are no running containers. Signed-off-by: Brian Goff Upstream-commit: 2d5dc94b9b547a9ba73f7b613e358b03fdfb2b84 Component: engine --- components/engine/daemon/daemon.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/engine/daemon/daemon.go b/components/engine/daemon/daemon.go index 5089de28f9..acd47a1af6 100644 --- a/components/engine/daemon/daemon.go +++ b/components/engine/daemon/daemon.go @@ -652,8 +652,12 @@ func (daemon *Daemon) Shutdown() error { // Keep mounts and networking running on daemon shutdown if // we are to keep containers running and restore them. if daemon.configStore.LiveRestore { - return nil + // check if there are any running containers, if none we should do some cleanup + if ls, err := daemon.Containers(&types.ContainerListOptions{}); len(ls) != 0 || err != nil { + return nil + } } + if daemon.containers != nil { logrus.Debug("starting clean shutdown of all containers...") daemon.containers.ApplyAll(func(c *container.Container) {