Go to file
Marek Marczykowski-Górecki b11d6e058b
ext/admin: workaround for extension's __init__() called multiple times
... during tests.
qubes.ext.Extension class is a weird thing that tries to make each extension
a singleton. But this unfortunately have a side effect that __init__()
is called separately for each "instance" (created in Qubes()'s
__init__()), even though this is really the same object. During normal
execution this isn't an issue, because there is just one Qubes() object
instance. But during tests, multiple objects are created.

In this particular case, it caused PolicyCache() to be created twice and
the second one overriden the first one - without properly cleaning it
up. This leaks a file descriptor (inotify one). The fact that cleanup()
was called twice too didn't helped, because it was really called on
the same object, the one requiring cleanup was already gone.

Workaround this by checking if policy_cache field is initialize and
avoid re-initialize it. Also, on Qubes() object cleanup remove that
field, so it can be properly initialized on the next test iteration.
2020-03-31 01:57:22 +02:00
ci travis: include core-qrexec in tests 2020-03-28 03:23:29 +01:00
contrib Remove python2 compat __future__ imports 2020-02-15 17:33:34 +00:00
doc doc/tests: extend qubes-specific quirks in tests 2019-11-30 04:38:10 +01:00
etc
linux cleanup-dispvms: fix python shebang 2019-11-22 21:39:35 +01:00
qubes ext/admin: workaround for extension's __init__() called multiple times 2020-03-31 01:57:22 +02:00
qubes-rpc import: check exact size of copied data 2020-01-23 09:48:58 +01:00
qubes-rpc-policy Add policy for qubes.VMExecGUI 2020-01-24 19:07:40 +01:00
qvm-tools qvm-sync-clock: Do not fail if clockvm is not set 2020-03-08 22:39:11 -04:00
relaxng Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
rpm_spec Support for AudioVM 2020-03-08 17:05:33 +01:00
templates Pass network parameters to linux-stubdom 2020-01-29 09:45:05 +01:00
test-packages Fix starting VM with kernel=None 2017-12-14 23:26:52 +01:00
.gitignore
.pylintrc pylint: disable import-outside-toplevel 2019-09-27 16:29:20 +02:00
.travis.yml travis: include core-qrexec in tests 2020-03-28 03:23:29 +01:00
installer.wxs
LICENSE Change license to LGPL v2.1+ 2017-10-12 00:11:50 +02:00
Makefile Add policy for qubes.VMExecGUI 2020-01-24 19:07:40 +01:00
Makefile.builder rpm: integrate -doc package into main one 2017-05-12 18:43:35 +02:00
README.md Update readme 2017-10-16 04:16:23 +02:00
run-tests
setup.cfg Add yapf configuration to setup.cfg 2016-07-21 12:11:34 +02:00
setup.py Support for AudioVM 2020-03-08 17:05:33 +01:00
version version 4.1.8 2020-01-27 17:28:15 +01:00

Qubes core, version 3

Build Status

This is master branch of the Qubes OS core.

API documentation is available: https://dev.qubes-os.org/projects/core-admin/en/latest/.