Check if VM needs killing before murdering it

In some cases, when the user waited some time before force-killing a VM,
it could be already dead.

fixes QubesOS/qubes-issues#3730
This commit is contained in:
Marta Marczykowska-Górecka 2018-03-24 22:53:22 +01:00
parent 2d6b6488ea
commit 20cabb5563
No known key found for this signature in database
GPG Key ID: 9A752C30B26FD04B
2 changed files with 9 additions and 1 deletions

View File

@ -192,7 +192,12 @@ class VmShutdownMonitor(QtCore.QObject):
self.tr("Wait another {0} seconds...").format( self.tr("Wait another {0} seconds...").format(
self.shutdown_time / 1000)) self.shutdown_time / 1000))
if reply == 0: if reply == 0:
vm.kill() try:
vm.kill()
except exc.QubesVMNotStartedError:
# the VM shut down while the user was thinking about
# shutting it down
pass
self.restart_vm_if_needed() self.restart_vm_if_needed()
else: else:
self.shutdown_started = datetime.now() self.shutdown_started = datetime.now()

View File

@ -4,3 +4,6 @@
class QubesException(BaseException): class QubesException(BaseException):
pass pass
class QubesVMNotStartedError(BaseException):
pass