Merge pull request #25185 from crosbymichael/cherry-restore
Check if the container is running if no event
This commit is contained in:
commit
42c783ac3a
1 changed files with 13 additions and 5 deletions
|
@ -505,12 +505,20 @@ func (clnt *client) Restore(containerID string, options ...CreateOption) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// If ev is nil, then we already consumed all the event of the
|
||||
// container, included the "exit" one.
|
||||
// Thus we return to avoid overriding the Exit Code.
|
||||
if ev == nil {
|
||||
logrus.Warnf("libcontainerd: restore was called on a fully synced container (%s)", containerID)
|
||||
return nil
|
||||
if _, err := clnt.getContainer(containerID); err == nil {
|
||||
// If ev is nil and the container is running in containerd,
|
||||
// we already consumed all the event of the
|
||||
// container, included the "exit" one.
|
||||
// Thus we return to avoid overriding the Exit Code.
|
||||
logrus.Warnf("libcontainerd: restore was called on a fully synced container (%s)", containerID)
|
||||
return nil
|
||||
}
|
||||
// the container is not running so we need to fix the state within docker
|
||||
ev = &containerd.Event{
|
||||
Type: StateExit,
|
||||
Status: 1,
|
||||
}
|
||||
}
|
||||
|
||||
// get the exit status for this container
|
||||
|
|
Loading…
Reference in a new issue