d551bdc3fa
Prior to this commit, there have been occasional issues with the usage of the Qubes Manager's VM restart button where the restart procedure is interrupted due to an exception thrown after the VM in question is shut down. The exception has the following backtrace: ---- line: assert not vm.is_running() func: start_vm line no.: 1198 file: /usr/lib64/python2.7/site-packages/qubesmanager/main.py ---- line: self.caller.start_vm(vm) func: check_if_vm_has_shutdown line no.: 308 file: /usr/lib64/python2.7/site-packages/qubesmanager/main.py Upon investigation, the root cause of the issue appears to be inconsistent information provided by Xen regarding a recently-shut-down VM's start-up timestamp and its state (i.e., running or shut down). In some cases Xen would report that the VM is running whereas the start-up timestamp would be returned as None, due to unknown reasons. This inconsistency would then cause the code modified by this commit to call the Qubes Manager's "start_vm" method, which would attempt to assert that a VM is shut down, which would raise the aforementioned exception. This commit aims to resolve this issue by checking whether the VM has fully shut down according to Xen and by calling "start_vm" only if the VM has fully shut down. This commit also slightly refactors the affected code. Fixes: QubesOS/qubes-issues#2438 |
||
---|---|---|
.. | ||
__init__.py | ||
.gitignore | ||
about.py | ||
appmenu_select.py | ||
backup_utils.py | ||
backup.py | ||
block.py | ||
clipboard.py | ||
create_new_vm.py | ||
firewall.py | ||
global_settings.py | ||
informationnotes.py | ||
log_dialog.py | ||
main.py | ||
mount_for_backup.sh | ||
multiselectwidget.py | ||
networknotes.py | ||
qvm_about.sh | ||
qvm_net.py | ||
releasenotes.py | ||
restore.py | ||
settings.py | ||
table_widgets.py | ||
thread_monitor.py |