diff --git a/runtime/v2/runc/v2/service.go b/runtime/v2/runc/v2/service.go index fccede15b..1e7053b72 100644 --- a/runtime/v2/runc/v2/service.go +++ b/runtime/v2/runc/v2/service.go @@ -378,15 +378,11 @@ func (s *service) Delete(ctx context.Context, r *taskAPI.DeleteRequest) (*taskAP if err != nil { return nil, errdefs.ToGRPC(err) } - // if we deleted our init task, close the platform and send the task delete event + // if we deleted an init task, send the task delete event if r.ExecID == "" { s.mu.Lock() delete(s.containers, r.ID) - hasContainers := len(s.containers) > 0 s.mu.Unlock() - if s.platform != nil && !hasContainers { - s.platform.Close() - } s.send(&eventstypes.TaskDelete{ ContainerID: container.ID, Pid: uint32(p.Pid()), @@ -630,6 +626,11 @@ func (s *service) Shutdown(ctx context.Context, r *taskAPI.ShutdownRequest) (*pt } s.cancel() close(s.events) + + if s.platform != nil { + s.platform.Close() + } + return empty, nil }