From 93a03369ae8c646ee0b0df4fc0ef29cceaa44465 Mon Sep 17 00:00:00 2001 From: Ted Yu Date: Wed, 20 Nov 2019 18:47:32 -0800 Subject: [PATCH] vc: Restore sandbox state when there is error starting containers Fixes #2237 Signed-off-by: Ted Yu --- virtcontainers/sandbox.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index 3ab7e014ce..4a6a0d6d52 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -1523,13 +1523,21 @@ func (s *Sandbox) Start() error { return err } + prevState := s.state.State + if err := s.setSandboxState(types.StateRunning); err != nil { return err } + var startErr error + defer func() { + if startErr != nil { + s.setSandboxState(prevState) + } + }() for _, c := range s.containers { - if err := c.start(); err != nil { - return err + if startErr = c.start(); startErr != nil { + return startErr } }