Merge pull request #2874 from jeanlaurent/rm-infinite-loop

Fix infinite loop when deleting machine in ultra weird state
This commit is contained in:
Jean-Laurent de Morlhon 2016-01-19 16:55:55 +01:00
commit 62bcc30859
1 changed files with 3 additions and 9 deletions

View File

@ -615,7 +615,7 @@ func (d *Driver) Kill() error {
} }
func (d *Driver) Remove() error { func (d *Driver) Remove() error {
s, err := d.GetState() _, err := d.GetState()
if err != nil { if err != nil {
if err == ErrMachineNotExist { if err == ErrMachineNotExist {
log.Infof("machine does not exist, assuming it has been removed already") log.Infof("machine does not exist, assuming it has been removed already")
@ -623,14 +623,8 @@ func (d *Driver) Remove() error {
} }
return err return err
} }
if s == state.Running { if err := d.Kill(); err != nil {
if err := d.Stop(); err != nil { return err
return err
}
} else if s != state.Stopped {
if err := d.Kill(); err != nil {
return err
}
} }
// vbox will not release it's lock immediately after the stop // vbox will not release it's lock immediately after the stop
d.sleeper.Sleep(1 * time.Second) d.sleeper.Sleep(1 * time.Second)