Reset RemovalInProgress flag on daemon restart
This flag can be set on disk if the daemon were to crash or error out while trying to remove container in which case subsequent tries to delete the container would all fail. Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
parent
aa537a367c
commit
ce72473197
1 changed files with 15 additions and 0 deletions
|
@ -314,6 +314,21 @@ func (daemon *Daemon) restore() error {
|
|||
mapLock.Unlock()
|
||||
}
|
||||
|
||||
if c.RemovalInProgress {
|
||||
// We probably crashed in the middle of a removal, reset
|
||||
// the flag.
|
||||
//
|
||||
// We DO NOT remove the container here as we do not
|
||||
// know if the user had requested for either the
|
||||
// associated volumes, network links or both to also
|
||||
// be removed. So we put the container in the "dead"
|
||||
// state and leave further processing up to them.
|
||||
logrus.Debugf("Resetting RemovalInProgress flag from %v", c.ID)
|
||||
c.ResetRemovalInProgress()
|
||||
c.SetDead()
|
||||
c.ToDisk()
|
||||
}
|
||||
|
||||
// if c.hostConfig.Links is nil (not just empty), then it is using the old sqlite links and needs to be migrated
|
||||
if c.HostConfig != nil && c.HostConfig.Links == nil {
|
||||
migrateLegacyLinks = true
|
||||
|
|
Loading…
Reference in a new issue