Windows: graph cleanup '-removing'

Signed-off-by: John Howard (VM) <jhoward@ntdev.microsoft.com>
Upstream-commit: 9910b9a7f02f6991d55abcc4ea57ec78d3b3675f
Component: engine
This commit is contained in:
John Howard (VM)
2017-03-17 14:59:48 -07:00
parent 998da3bcb0
commit c8585d779a

View File

@ -412,7 +412,29 @@ func (d *Driver) Put(id string) error {
}
// Cleanup ensures the information the driver stores is properly removed.
// We use this opportunity to cleanup any -removing folders which may be
// still left if the daemon was killed while it was removing a layer.
func (d *Driver) Cleanup() error {
items, err := ioutil.ReadDir(d.info.HomeDir)
if err != nil {
return err
}
// Note we don't return an error below - it's possible the files
// are locked. However, next time around after the daemon exits,
// we likely will be able to to cleanup successfully. Instead we log
// warnings if there are errors.
for _, item := range items {
if item.IsDir() && strings.HasSuffix(item.Name(), "-removing") {
if err := hcsshim.DestroyLayer(d.info, item.Name()); err != nil {
logrus.Warnf("Failed to cleanup %s: %s", item.Name(), err)
} else {
logrus.Infof("Cleaned up %s", item.Name())
}
}
}
return nil
}