summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorBrian Goff <cpuguy83@gmail.com>2017-12-18 21:28:16 -0500
committerBrian Goff <cpuguy83@gmail.com>2018-02-07 15:54:52 -0500
commite6f784e3df2095366fd99fd42ab5a2d0b451bd07 (patch)
tree5ddc175a0d22e40d28d29d4e043d92fc359caab6 /plugin
parent37d7b7ddc332541f516d0c41d9ad30b28f2d3e22 (diff)
downloaddocker-e6f784e3df2095366fd99fd42ab5a2d0b451bd07.tar.gz
Make sure plugin mounts are cleaned up
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Diffstat (limited to 'plugin')
-rw-r--r--plugin/manager.go5
-rw-r--r--plugin/manager_linux.go3
2 files changed, 8 insertions, 0 deletions
diff --git a/plugin/manager.go b/plugin/manager.go
index 2bdf82e56f..750e3a5349 100644
--- a/plugin/manager.go
+++ b/plugin/manager.go
@@ -19,6 +19,7 @@ import (
"github.com/docker/docker/layer"
"github.com/docker/docker/pkg/authorization"
"github.com/docker/docker/pkg/ioutils"
+ "github.com/docker/docker/pkg/mount"
"github.com/docker/docker/pkg/pubsub"
"github.com/docker/docker/pkg/system"
"github.com/docker/docker/plugin/v2"
@@ -155,6 +156,10 @@ func (pm *Manager) HandleExitEvent(id string) error {
if restart {
pm.enable(p, c, true)
+ } else {
+ if err := mount.RecursiveUnmount(filepath.Join(pm.config.Root, id)); err != nil {
+ return errors.Wrap(err, "error cleaning up plugin mounts")
+ }
}
return nil
}
diff --git a/plugin/manager_linux.go b/plugin/manager_linux.go
index 1def28c2a0..a98702802f 100644
--- a/plugin/manager_linux.go
+++ b/plugin/manager_linux.go
@@ -187,6 +187,9 @@ func (pm *Manager) Shutdown() {
shutdownPlugin(p, c, pm.executor)
}
}
+ if err := mount.RecursiveUnmount(pm.config.Root); err != nil {
+ logrus.WithError(err).Warn("error cleaning up plugin mounts")
+ }
}
func (pm *Manager) upgradePlugin(p *v2.Plugin, configDigest digest.Digest, blobsums []digest.Digest, tmpRootFSDir string, privileges *types.PluginPrivileges) (err error) {