diff --git a/runtime/v1/linux/runtime.go b/runtime/v1/linux/runtime.go index 545e2167a..c408126ae 100644 --- a/runtime/v1/linux/runtime.go +++ b/runtime/v1/linux/runtime.go @@ -338,8 +338,12 @@ func (r *Runtime) loadTasks(ctx context.Context, ns string) ([]*Task, error) { ctx = namespaces.WithNamespace(ctx, ns) pid, _ := runc.ReadPidFile(filepath.Join(bundle.path, proc.InitPidFile)) s, err := bundle.NewShimClient(ctx, ns, ShimConnect(r.config, func() { - err := r.cleanupAfterDeadShim(ctx, bundle, ns, id, pid) + _, err := r.tasks.Get(ctx, id) if err != nil { + // Task was never started or was already successfully deleted + return + } + if err := r.cleanupAfterDeadShim(ctx, bundle, ns, id, pid); err != nil { log.G(ctx).WithError(err).WithField("bundle", bundle.path). Error("cleaning up after dead shim") }