Go to file
M. Vefa Bicakci d551bdc3fa
Do not abort VM restarts due to inconsistent info
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
2017-05-13 14:30:37 -04:00
.tx i18n: add configuration for transifex client 2017-02-03 17:22:02 +01:00
i18n Update translation 2017-03-07 20:31:29 +01:00
icons Implemented 'Restart' button 2016-06-05 22:19:18 +03:00
qubesmanager Do not abort VM restarts due to inconsistent info 2017-05-13 14:30:37 -04:00
rpm_spec Merge branch 'i18n' 2017-02-03 17:29:08 +01:00
.gitignore gitignore 2015-05-04 00:45:11 +02:00
.travis.yml travis: drop debootstrap workaround 2016-12-14 23:46:44 +01:00
about.ui Move network diagram to System menu in Manager 2017-01-28 03:15:58 +00:00
backupdlg.ui backups: Explain why passwords are always required 2017-02-22 11:29:46 -05:00
build-deps.list Remove obsolete entries from build-deps.list 2013-03-09 00:15:03 +01:00
globalsettingsdlg.ui typo fix 2014-05-11 13:56:30 +02:00
informationnotes.ui Add extended information and Network diagram to Manager 2017-01-26 20:36:39 +00:00
logdlg.ui Use monospace font for log viewer. 2013-02-26 17:00:52 +01:00
mainwindow.ui Move network diagram to System menu in Manager 2017-01-28 03:15:58 +00:00
Makefile Merge branch 'i18n' 2017-02-03 17:29:08 +01:00
Makefile.builder Add Makefile.builder 2013-03-19 15:06:14 +01:00
multiselectwidget.ui Ensure list box resizes with window 2015-12-13 20:41:19 +00:00
networknotes.ui Add extended information and Network diagram to Manager 2017-01-26 20:36:39 +00:00
newappvmdlg.ui use new icon from qubes-artwork 2014-07-09 18:21:56 +02:00
newfwruledlg.ui Firewall tab accepts protocols (ticket #447). 2012-03-04 17:36:25 +01:00
org.qubesos.QubesManager.conf dbus interface for error icon notify (#615) 2012-07-05 01:11:23 +02:00
org.qubesos.QubesManager.xml Show running instance when started the second time (#632) 2012-07-24 23:46:03 +02:00
qubes-manager use any python2, not explicit python2.6 2013-01-23 15:55:14 +01:00
qubes-manager.desktop use new icon from qubes-artwork 2014-07-09 18:21:56 +02:00
qubes-vm-settings bring back to work appmenu select/VM settings standalone app (#548) 2012-06-21 11:58:25 +02:00
qubesmanager.pro i18n: add 'en' translation file as a source template 2017-02-03 17:21:12 +01:00
README.md i18n: add basic support for translations 2017-01-22 13:22:16 +01:00
releasenotes.ui Create custom 'About' dialog, with 'release notes' viewer (#1259) 2015-10-01 22:34:49 +02:00
resources.qrc Implemented 'Restart' button 2016-06-05 22:19:18 +03:00
restoredlg.ui Fix awkward phrasing in backup dialog 2016-12-14 17:36:09 -05:00
settingsdlg.ui Clarified that unlisted services will take on *default* values, not the values from some default VM. 2016-02-19 19:14:11 +01:00
version version 3.2.11 2017-04-01 11:54:46 +02:00

Qubes Manager

Managing translations

Adding new language

  1. Add i18n/qubesmanager_LANGUAGECODE.ts (replace LANGUAGECODE with actual code, for example es) to qubesmanager.pro - TRANSLATIONS setting.
  2. Run make res update_ts

Regenerating translation source files (.ts)

make res update_ts

This will keep translated strings, but will add new ones.

Updating translations

Commit updated .ts files into i18n directory.