From 4130913ed7e44ba527d8a6f58cbb63798bc860c5 Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Thu, 18 Jul 2019 21:17:48 -0700 Subject: [PATCH] agent: mark agent dead when failing to connect Whenever we fail to connect, do not make any more attempts. More attempts are possible during cleanup phase but we should not try to connect any more there. Signed-off-by: Peng Tao --- virtcontainers/kata_agent.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/virtcontainers/kata_agent.go b/virtcontainers/kata_agent.go index d11f65c21..06b505dbc 100644 --- a/virtcontainers/kata_agent.go +++ b/virtcontainers/kata_agent.go @@ -136,6 +136,7 @@ type kataAgent struct { keepConn bool proxyBuiltIn bool dynamicTracing bool + dead bool vmSocket interface{} ctx context.Context @@ -1581,6 +1582,9 @@ func (k *kataAgent) statsContainer(sandbox *Sandbox, c Container) (*ContainerSta } func (k *kataAgent) connect() error { + if k.dead { + return errors.New("Dead agent") + } // lockless quick pass if k.client != nil { return nil @@ -1599,6 +1603,7 @@ func (k *kataAgent) connect() error { k.Logger().WithField("url", k.state.URL).Info("New client") client, err := kataclient.NewAgentClient(k.ctx, k.state.URL, k.proxyBuiltIn) if err != nil { + k.dead = true return err }