Browse Source

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 <cpuguy83@gmail.com>
Brian Goff 9 years ago
parent
commit
2d5dc94b9b
1 changed files with 5 additions and 1 deletions
  1. 5 1
      daemon/daemon.go

+ 5 - 1
daemon/daemon.go

@@ -652,8 +652,12 @@ func (daemon *Daemon) Shutdown() error {
 	// Keep mounts and networking running on daemon shutdown if
 	// Keep mounts and networking running on daemon shutdown if
 	// we are to keep containers running and restore them.
 	// we are to keep containers running and restore them.
 	if daemon.configStore.LiveRestore {
 	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 {
 	if daemon.containers != nil {
 		logrus.Debug("starting clean shutdown of all containers...")
 		logrus.Debug("starting clean shutdown of all containers...")
 		daemon.containers.ApplyAll(func(c *container.Container) {
 		daemon.containers.ApplyAll(func(c *container.Container) {