From a05e5fd77a1d1c3a4e29b98bb4b74ec9bd55f87d Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Tue, 28 Nov 2017 13:14:39 -0500 Subject: [PATCH] restore deferred cleanup in rootfs.init Signed-off-by: Daniel Nephin --- gc/scheduler/scheduler.go | 1 - rootfs/init.go | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gc/scheduler/scheduler.go b/gc/scheduler/scheduler.go index b8c2ca06c..3aa37b6e9 100644 --- a/gc/scheduler/scheduler.go +++ b/gc/scheduler/scheduler.go @@ -250,7 +250,6 @@ func (s *gcScheduler) run(ctx context.Context) { schedC, nextCollection = schedule(interval) continue } - break case e := <-s.eventC: if lastCollection != nil && lastCollection.After(e.ts) { continue diff --git a/rootfs/init.go b/rootfs/init.go index e9abd2c4b..23a9bc4bf 100644 --- a/rootfs/init.go +++ b/rootfs/init.go @@ -70,6 +70,14 @@ func createInitLayer(ctx context.Context, parent, initName string, initFn func(s return "", err } + defer func() { + if err != nil { + if rerr := snapshotter.Remove(ctx, td); rerr != nil { + log.G(ctx).Errorf("Failed to remove snapshot %s: %v", td, rerr) + } + } + }() + if err = mounter.Mount(td, mounts...); err != nil { return "", err }