From 6487044fa1bd28ca5f920a8033153aaed9e19608 Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Tue, 15 Sep 2020 19:23:03 +0800 Subject: [PATCH] shimv2: trust cached status when deleting containers vc status might not be accurate because it does not watch container status change. Signed-off-by: Peng Tao --- src/runtime/containerd-shim-v2/delete.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/runtime/containerd-shim-v2/delete.go b/src/runtime/containerd-shim-v2/delete.go index ed7f785e0..70631c4fa 100644 --- a/src/runtime/containerd-shim-v2/delete.go +++ b/src/runtime/containerd-shim-v2/delete.go @@ -9,25 +9,21 @@ import ( "context" "path" + "github.com/containerd/containerd/api/types/task" "github.com/containerd/containerd/mount" "github.com/kata-containers/kata-containers/src/runtime/pkg/katautils" - "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" ) func deleteContainer(ctx context.Context, s *service, c *container) error { - status, err := s.sandbox.StatusContainer(c.id) - if err != nil && !isNotFound(err) { - return err - } - if !c.cType.IsSandbox() && err == nil { - if status.State.State != types.StateStopped { - _, err = s.sandbox.StopContainer(c.id, false) + if !c.cType.IsSandbox() { + if c.status != task.StatusStopped { + _, err := s.sandbox.StopContainer(c.id, false) if err != nil { return err } } - if _, err = s.sandbox.DeleteContainer(c.id); err != nil { + if _, err := s.sandbox.DeleteContainer(c.id); err != nil { return err } }