Merge pull request #2238 from tedyu/start-sandbox-running

vc: Restore sandbox state when there is error starting containers
This commit is contained in:
Julio Montes 2019-11-21 13:58:56 -06:00 committed by GitHub
commit a17ca14c7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1523,13 +1523,21 @@ func (s *Sandbox) Start() error {
return err return err
} }
prevState := s.state.State
if err := s.setSandboxState(types.StateRunning); err != nil { if err := s.setSandboxState(types.StateRunning); err != nil {
return err return err
} }
var startErr error
defer func() {
if startErr != nil {
s.setSandboxState(prevState)
}
}()
for _, c := range s.containers { for _, c := range s.containers {
if err := c.start(); err != nil { if startErr = c.start(); startErr != nil {
return err return startErr
} }
} }