Skip to content

Commit 9964092

Browse files
authored
Merge pull request #1397 from balajiv113/qemu-stop
Fix broken state on QEMU ACPI shutdown
2 parents 97a4146 + 1676537 commit 9964092

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

pkg/qemu/qemu_driver.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,11 +219,16 @@ func (l *LimaQemuDriver) shutdownQEMU(ctx context.Context, timeout time.Duration
219219
}
220220

221221
func (l *LimaQemuDriver) killQEMU(_ context.Context, _ time.Duration, qCmd *exec.Cmd, qWaitCh <-chan error) error {
222-
if killErr := qCmd.Process.Kill(); killErr != nil {
223-
logrus.WithError(killErr).Warn("failed to kill QEMU")
222+
var qWaitErr error
223+
if qCmd.ProcessState == nil {
224+
if killErr := qCmd.Process.Kill(); killErr != nil {
225+
logrus.WithError(killErr).Warn("failed to kill QEMU")
226+
}
227+
qWaitErr = <-qWaitCh
228+
logrus.WithError(qWaitErr).Info("QEMU has exited, after killing forcibly")
229+
} else {
230+
logrus.Info("QEMU has already exited")
224231
}
225-
qWaitErr := <-qWaitCh
226-
logrus.WithError(qWaitErr).Info("QEMU has exited, after killing forcibly")
227232
qemuPIDPath := filepath.Join(l.Instance.Dir, filenames.PIDFile(*l.Yaml.VMType))
228233
_ = os.RemoveAll(qemuPIDPath)
229234
l.removeVNCFiles()

0 commit comments

Comments
 (0)