From 4b400ecc4df4bcf245f1f751a7fd0c9c193d9dbf Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Tue, 29 Nov 2016 20:00:02 -0500 Subject: [PATCH] Move plugin shutdown after layerstore shtudown This ensures that graphdriver plugins can properly cleanup on daemon exit. Also prevents errors during shutdown when it tries to send the plugin a `Cleanup()` request but ultimately times out since it's already been shutdown. Signed-off-by: Brian Goff --- daemon/daemon.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/daemon/daemon.go b/daemon/daemon.go index 69a279dc7b..538a17f662 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -792,7 +792,13 @@ func (daemon *Daemon) Shutdown() error { }) } - // Shutdown plugins after containers. Don't change the order. + if daemon.layerStore != nil { + if err := daemon.layerStore.Cleanup(); err != nil { + logrus.Errorf("Error during layer Store.Cleanup(): %v", err) + } + } + + // Shutdown plugins after containers and layerstore. Don't change the order. daemon.pluginShutdown() // trigger libnetwork Stop only if it's initialized @@ -800,12 +806,6 @@ func (daemon *Daemon) Shutdown() error { daemon.netController.Stop() } - if daemon.layerStore != nil { - if err := daemon.layerStore.Cleanup(); err != nil { - logrus.Errorf("Error during layer Store.Cleanup(): %v", err) - } - } - if err := daemon.cleanupMounts(); err != nil { return err }