core-admin/core
HW42 b467dd6218
QubesWatch: do not create multiple dom0 QubesDB connections
When calling _register_watches() multiple times for dom0 (by passing
None or since 7e9c816b by passing the corresponding libvirt domain) the
check was missing if there is already a QubesDB in _qdb. Therefore a new
QubesDB was created and the old one is destroyed by the GC. As a
consequence the watch_fd is closed but the libvirt event handle for this
fd is still registered. So when libvirt calls poll() it returns
immediately POLLNVAL with the closed fd. This is not caught in libvirt
and the callback is called as if an event happened. _qdb_handler() now
calls read_watch() on the new fd for dom0 and thereby hangs the thread.
This leads (at leads) to qubes-manager to miss VM status updates and
block device events.

Fixes QubesOS/qubes-issues#2178
2016-07-18 15:03:14 +02:00
..
storage core/hvm: create root-cow.img if it's missing 2016-01-11 21:53:33 +01:00
tests qubesutils.py: get_disk_usage 2014-04-24 21:50:12 +02:00
__init__.py Move all files one level up 2013-03-16 19:56:51 +01:00
.gitignore Move all files one level up 2013-03-16 19:56:51 +01:00
backup.py core: fix handling uses_default_netvm property 2016-07-17 03:56:11 +02:00
guihelpers.py Fixed PyQt4 import in guihelpers 2014-11-19 12:50:31 +01:00
Makefile makefile: Improve readability of settings.py install command 2014-11-19 12:50:26 +01:00
modules add convenient symlinks simulating target python files layout 2014-03-10 01:05:01 +01:00
notify.py core: fix imports 2014-11-19 12:50:32 +01:00
qubes.py core: fix handling uses_default_netvm property 2016-07-17 03:56:11 +02:00
qubesutils.py QubesWatch: do not create multiple dom0 QubesDB connections 2016-07-18 15:03:14 +02:00
settings-xen-Linux.py Rename storage dir to dir_path, type to driver 2015-11-21 14:46:23 +01:00