core-admin/qubes
Marek Marczykowski-Górecki 202e3df6b6
vm/mixin/net: disconnect network interface on backend shutdown/crash
Since we have more reliable domain-shutdown event delivery (it si
guaranteed to be delivered before subsequent domain start, even if
libvirt fails to report it), it's better to move detach_network call to
domain-shutdown handler. This way, frontend domain will see immediately
that the backend is gone. Technically it already know that, but at least
Linux do not propagate that anywhere, keeping the interface up,
seemingly operational, leading to various timeouts.
Additionally, by avoiding attach_network call _just_ after
detach_network call, it avoids various race conditions (like calling
cleanup scripts after new device got already connected).

While libvirt itself still doesn't cleanup devices when the backend
domain is gone, this will emulate it within qubesd.

Fixes QubesOS/qubes-issues#3642
Fixes QubesOS/qubes-issues#1426
2019-02-27 06:03:57 +01:00
..
api Make add_pool/remove_pool coroutines, allow Pool.{setup,destroy} as coroutines 2019-02-27 06:03:57 +01:00
ext qubes/ext/gui: set videoram qdb entries 2018-12-20 18:28:40 +01:00
qmemman qmemman: fix early crash 2018-01-18 17:36:37 +01:00
storage storage/file: gracefully handle not mounted pool 2019-02-27 06:03:57 +01:00
tests tests: network reconnect after network provider shutdown/crash 2019-02-27 06:03:57 +01:00
tools Merge remote-tracking branch 'origin/pr/242' 2018-11-24 14:43:43 +01:00
vm vm/mixin/net: disconnect network interface on backend shutdown/crash 2019-02-27 06:03:57 +01:00
__init__.py Use correct bool properties parsing by default 2019-02-23 15:43:19 +01:00
app.py app: allow removing VM referencing only itself 2019-02-27 06:03:57 +01:00
backup.py Remove unused core2migration.py 2018-12-04 16:12:33 +01:00
config.py app: create /var/lib/qubes as file-reflink if supported 2018-09-11 23:50:26 +00:00
devices.py Drop unnecessary 'pass' to make pylint happy 2018-12-04 16:06:33 +01:00
dochelpers.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
events.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
exc.py Prevent removal of in-use storage pool 2019-02-27 06:03:57 +01:00
features.py qubes/features: check_with_(template_and_)adminvm 2018-12-20 18:28:33 +01:00
firewall.py Merge branch 'master' into devel-no-assert 2018-10-29 20:29:53 +01:00
log.py Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
rngdoc.py Fix issues found by pylint 2.0 2018-07-15 23:51:15 +02:00
tarwriter.py Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
utils.py qubes/utils: parse_size: Fix string comparison 2019-01-16 21:18:50 -05:00