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 }