-
-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test improvements #622
Test improvements #622
Conversation
It's now virxend service, not libvirtd. QubesOS/qubes-issues#9402
libvirtd.service is the monolithic one, virtxend is modular one. Add After=virtxend.socket, as it uses socket activation now. QubesOS/qubes-issues#9402
It's more logical to do that in the QubesVM class. Moving this also avoids protected-access pylint complain (which is very much valid complain).
Normally it wouldn't matter because dropping reference to VirDomainWrapper would do. But if there is an exception that happened during libvirt call (like createWithFlags), the traceback attached to the exception would keep reference to VirDomainWrapper object, preventing closing libvirt connection. During normal runtime it isn't huge problem, as those exceptions are discarded soon after anyway. But during tests, they are all collected, and that results in leaking a lot of libvirt connection objects, and as a consequence open file descriptors. QubesOS/qubes-issues#
26668dd
to
1d066fd
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #622 +/- ##
==========================================
- Coverage 69.34% 69.30% -0.04%
==========================================
Files 58 58
Lines 11955 11964 +9
==========================================
+ Hits 8290 8292 +2
- Misses 3665 3672 +7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Complementary to the previous commit, avoid keeping keeping libvirt object (function) reference in locals, which become closure for the wrapper. Do getattr (again) when the actual call is made. The primary reason for this change is to avoid leaking objects during tests, but also this fixes a rare failure more - if external caller would cache returned function, it wouldn't work after reconnection. For example: # libvirt_domain is VirDomainWrapper() object >>> func = libvirt_domain.pause >>> func() >>> func() If reconnection happens during the first call (or between calls), the second call would use stale function reference.
…i_memory_pinning Whonix Gateway shows some notifications / windows on startup (Tor connection progress info, updates notification, news etc). When it happens at the wrong time, it will switch focus between two screenshots, affecting cursor image and thus causing the test to fail. Avoid this by disabling starting Tor for this test.
bdfc22e
to
506cd2a
Compare
OpenQA test summaryComplete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024100715-4.3&flavor=pull-requests Test run included the following:
New failures, excluding unstableCompared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024091704-4.3&flavor=update
Failed tests11 failures
Fixed failuresCompared to: https://openqa.qubes-os.org/tests/112766#dependencies 199 fixed
Unstable tests
|
Including a fix to libvirt object leaks between tests.