Skip to content

Return appropriate exception when libvirt shutdown times out#807

Merged
marmarek merged 4 commits into
QubesOS:mainfrom
ben-grande:long-shutdown
May 22, 2026
Merged

Return appropriate exception when libvirt shutdown times out#807
marmarek merged 4 commits into
QubesOS:mainfrom
ben-grande:long-shutdown

Conversation

@ben-grande
Copy link
Copy Markdown
Contributor

@ben-grande ben-grande commented May 6, 2026

@ben-grande ben-grande force-pushed the long-shutdown branch 2 times, most recently from 85641c2 to 3815893 Compare May 6, 2026 14:47
@codecov
Copy link
Copy Markdown

codecov Bot commented May 6, 2026

Codecov Report

❌ Patch coverage is 55.35714% with 25 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.33%. Comparing base (71b5ab2) to head (bc93a9b).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
qubes/app.py 47.36% 20 Missing ⚠️
qubes/vm/qubesvm.py 72.22% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #807      +/-   ##
==========================================
+ Coverage   70.24%   70.33%   +0.09%     
==========================================
  Files          61       61              
  Lines       14073    14095      +22     
==========================================
+ Hits         9885     9914      +29     
+ Misses       4188     4181       -7     
Flag Coverage Δ
unittests 70.33% <55.35%> (+0.09%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@marmarek
Copy link
Copy Markdown
Member

marmarek commented May 7, 2026

qubes/vm/qubesvm.py:1:0: C0302: Too many lines in module (3015/3000) (too-many-lines)

really? ...

It is long, but I don't think splitting it would make it any easier, so maybe disable it for this file.

As for the test failure, they aren't running with real libvirt, you'll likely need to replace the function with a mockup...

@ben-grande ben-grande force-pushed the long-shutdown branch 2 times, most recently from e0b28c1 to 83d8d01 Compare May 8, 2026 09:28
ben-grande added a commit to ben-grande/qubes-manager that referenced this pull request May 12, 2026
The merge request to core-admin already avoids the main problem, of a hanging
shutdown blocking qubesd. This change avoids a hanging shutdown blocking the
interaction with the qube manager

For: QubesOS/qubes-issues#10648
Fixes: QubesOS/qubes-issues#10074
Requires: QubesOS/qubes-core-admin#807
Requires: QubesOS/qubes-core-admin-client#469
ben-grande added a commit to ben-grande/qubes-desktop-linux-manager that referenced this pull request May 13, 2026
Waiting for the server to send the result of the API calls, allows
dealing with failures/exceptions:

- QubesVM.shutdown -> .shutdown(wait=True)
- QubesVM.run_service -> .run_service_for_stdio

It also does not block the widget from being opened again even if an
action is still running. This allows, for example:

- To create disposable qube and attach device to it (which takes 10s),
  but not block the widget from opening
- To detach and shutdown disposable that is hanging, without hanging the
  widget

For qui/tray/domains.py, the "widget.destroy()" is called earlier, cause
it's not needed after the response is received. Else it hangs until the
"react_to_question" finishes.

For: QubesOS/qubes-issues#10648
For: QubesOS/qubes-issues#10651
For: QubesOS/qubes-issues#10835
Requires: QubesOS/qubes-core-admin#807
Requires: QubesOS/qubes-core-admin-client#469
@ben-grande ben-grande marked this pull request as ready for review May 18, 2026 15:13
@marmarek
Copy link
Copy Markdown
Member

Black complains

An unresponsive libvirt guest will not shutdown and timeout after 60
seconds, this synchronous operations blocks qubesd. This timeout doesn't
seem customizable via "self.libvirt_domain.agentSetResponseTimeout()",
as it raises:

    virtxend: this function is not supported by the connection driver

Raise appropriate timeout exception so the client can adapt to call the
"QubesVM.kill()->libvirt_domain.destroy()" instead.

For: QubesOS/qubes-issues#10835
The action blocks either way as we have to await for them to complete,
but the "xl" command does not block qubesd while "virsh" does, as it has
a global lock.

For: QubesOS/qubes-issues#10648
For: QubesOS/qubes-issues#10074
ben-grande added a commit to ben-grande/qubes-desktop-linux-manager that referenced this pull request May 21, 2026
Waiting for the server to send the result of the API calls, allows
dealing with failures/exceptions:

- QubesVM.shutdown -> .shutdown(wait=True)
- QubesVM.run_service -> .run_service_for_stdio

It also does not block the widget from being opened again even if an
action is still running. This allows, for example:

- To create disposable qube and attach device to it (which takes 10s),
  but not block the widget from opening
- To detach and shutdown disposable that is hanging, without hanging the
  widget

For qui/tray/domains.py, the "widget.destroy()" is called earlier, cause
it's not needed after the response is received. Else it hangs until the
"react_to_question" finishes.

For: QubesOS/qubes-issues#10648
For: QubesOS/qubes-issues#10651
For: QubesOS/qubes-issues#10835
Requires: QubesOS/qubes-core-admin#807
Requires: QubesOS/qubes-core-admin-client#469
@qubesos-bot
Copy link
Copy Markdown

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026052103-devel&flavor=pull-requests

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2026050504-devel&flavor=update

  • system_tests_whonix

    • whonixcheck: wait_serial (unknown)
      # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_guivm_gui_interactive

    • collect_logs: wait_serial (unknown)
      # Command: curl --form upload=@journalctl.log --form upname=collect...

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form upload=@journalctl.log --form upn...

    • collect_logs: wait_serial (unknown)
      # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....

  • system_tests_dispvm

    • TC_20_DispVM_debian-13-xfce: test_090_edit_file (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_audio

  • system_tests_qwt_win10@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...
  • system_tests_qwt_win10_seamless@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: Install timed out at qubesos/tests/windows_install.pm ...

  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...
  • system_tests_guivm_gpu_gui_interactive@hw13

    • startup: wait_serial (unknown)
      # Result:...

    • startup: Failed (test died + timed out)
      # Test died: typing command 'sudo -u user DBUS_SESSION_BUS_ADDRESS=...

    • startup: wait_serial (wait serial expected)
      # wait_serial expected: "# "...

    • startup: wait_serial (unknown)
      # Result:...

Failed tests

32 failures
  • system_tests_whonix

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for anon-whonix failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for whonix-gateway-18 failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for whonix-workstation-18 failed...

    • [unstable] whonixcheck: Failed (test died)
      # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...

    • whonixcheck: wait_serial (unknown)
      # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....

  • system_tests_extra

    • TC_01_InputProxyExclude_debian-13-xfce: test_000_qemu_tablet (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • [unstable] TC_00_PDFConverter_fedora-43-xfce: test_004_cancel_stops_conversion (failure)
      AssertionError: DispVM not cleaned up 10s after cancel: {<DispVM at...

  • system_tests_guivm_gui_interactive

    • collect_logs: wait_serial (unknown)
      # Command: curl --form upload=@journalctl.log --form upname=collect...

    • collect_logs: Failed (test died + timed out)
      # Test died: command 'curl --form upload=@journalctl.log --form upn...

    • collect_logs: wait_serial (unknown)
      # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....

  • system_tests_dispvm

    • TC_20_DispVM_debian-13-xfce: test_090_edit_file (error + timed out)
      qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_audio

  • system_tests_qwt_win10@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: Install timed out at qubesos/tests/windows_install.pm ...

  • system_tests_qwt_win10_seamless@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: Install timed out at qubesos/tests/windows_install.pm ...

  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/install-complete-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: Install timed out at qubesos/tests/windows_install.pm ...

  • system_tests_whonix@hw1

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for anon-whonix failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for whonix-gateway-18 failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • [unstable] whonixcheck: fail (unknown)
      Whonixcheck for whonix-workstation-18 failed...

    • [unstable] whonixcheck: Failed (test died)
      # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...

  • system_tests_guivm_gpu_gui_interactive@hw13

    • startup: wait_serial (unknown)
      # Result:...

    • startup: Failed (test died + timed out)
      # Test died: typing command 'sudo -u user DBUS_SESSION_BUS_ADDRESS=...

    • startup: wait_serial (wait serial expected)
      # wait_serial expected: "# "...

    • startup: wait_serial (unknown)
      # Result:...

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/176874#dependencies

28 fixed
  • system_tests_pvgrub_salt_storage

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.grub failed (exit code 1), details reported...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • TC_41_HVMGrub_debian-13-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_001_standalone_vm_dracut (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_debian-13-xfce: test_011_template_based_vm_dracut (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_fedora-43-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_extra

    • TC_01_InputProxyExclude_fedora-43-xfce: test_000_qemu_tablet (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_00_QVCTest_fedora-43-xfce: test_010_screenshare (failure + cleanup)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0

    • TC_00_QVCTest_whonix-gateway-18: test_010_screenshare (failure + cleanup)
      AssertionError: 2.3156185715769593 not less than 2.0

  • system_tests_usbproxy

    • system_tests: Fail (unknown)
      Tests qubes.tests.extra failed (exit code 1), details reported sepa...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • system_tests: wait_serial (wait serial expected)
      # wait_serial expected: qr/h3uXO-\d+-/...

    • TC_20_USBProxy_core3_fedora-43-xfce: test_090_attach_stubdom (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_network_ipv6

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • VmIPv6Networking_fedora-43-xfce: test_001_simple_networking_paused_from_none_to_existent (error)
      raise TimeoutError from exc_val... TimeoutError

  • system_tests_audio

  • system_tests_audio@hw1

    • system_tests: Fail (unknown)
      Tests qubes.tests.integ.audio failed (exit code 1), details reporte...

    • system_tests: Failed (test died)
      # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...

    • TC_20_AudioVM_Pulse_debian-13-xfce: test_222_audio_rec_unmuted_pulseaudio (failure)
      AssertionError: only silence detected, no useful audio data

  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Edge-address-...
  • system_tests_guivm_gpu_gui_interactive@hw13

    • shutdown: unnamed test (unknown)
    • shutdown: Failed (test died)
      # Test died: no candidate needle with tag(s) 'text-logged-in-root' ...

Unstable tests

Details
  • system_tests_whonix

    whonixcheck/Failed (3/5 times with errors)
    • job 178922 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179099 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179105 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/Failed (2/5 times with errors)
    • job 179051 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179102 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/fail (2/5 times with errors)
    whonixcheck/fail (3/5 times with errors)
    whonixcheck/fail (2/5 times with errors)
  • system_tests_gui_tools

    desktop_linux_manager_config/ (3/5 times with errors)
    desktop_linux_manager_config/Failed (3/5 times with errors)
    • job 178835 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    • job 178837 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    • job 178840 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    desktop_linux_manager_config/wait_serial (1/5 times with errors)
    • job 178837 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_suspend

    suspend/Failed (2/5 times with errors)
    • job 179086 # Test died: command 'qvm-run -p sys-net true' timed out at /usr/li...
    • job 179098 # Test died: command 'qvm-run -p sys-net true' timed out at /usr/li...
    suspend/Failed (3/5 times with errors)
    • job 178918 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    • job 179097 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    • job 179101 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    suspend/wait_serial (2/5 times with errors)
    suspend/wait_serial (3/5 times with errors)
    • job 178918 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    • job 179097 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    • job 179101 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    suspend/wait_serial (2/5 times with errors)
    suspend/wait_serial (3/5 times with errors)
    • job 178918 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
    • job 179097 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
    • job 179101 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
  • system_tests_basic_vm_qrexec_gui

    system_tests/Fail (1/5 times with errors)
    • job 178906 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Failed (1/5 times with errors)
    • job 178906 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Basic/test_141_libvirt_objects_reconnect (1/5 times with errors)
    • job 178906 AssertionError: libvirt event impl drain timeout
  • system_tests_pvgrub_salt_storage

    system_tests/Fail (4/5 times with errors)
    • job 178925 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    • job 178956 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    • job 178962 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    • job 179083 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    system_tests/Failed (4/5 times with errors)
    • job 178925 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 178956 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 178962 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179083 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_41_HVMGrub_debian-13-xfce/test_000_standalone_vm (2/5 times with errors)
    • job 178925 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 179083 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
    TC_41_HVMGrub_debian-13-xfce/test_001_standalone_vm_dracut (3/5 times with errors)
    • job 178925 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178956 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178962 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_010_template_based_vm (3/5 times with errors)
    • job 178925 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178956 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178962 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-43-xfce/test_010_template_based_vm (3/5 times with errors)
    • job 178925 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178956 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178962 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_42_PVHGrub_fedora-43-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 179083 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_011_template_based_vm_dracut (3/5 times with errors)
    • job 178925 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
    • job 178956 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 178962 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_extra

    system_tests/Fail (2/5 times with errors)
    • job 178816 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 178860 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (2/5 times with errors)
    • job 178816 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 178860 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_01_InputProxyExclude_fedora-43-xfce/test_000_qemu_tablet (1/5 times with errors)
    • job 178860 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_00_PDFConverter_fedora-43-xfce/test_004_cancel_stops_conversion (1/5 times with errors)
    • job 178816 AssertionError: DispVM not cleaned up 10s after cancel: {<DispVM at...
    TC_00_QVCTest_fedora-43-xfce/test_010_screenshare (1/5 times with errors)
    • job 178860 ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 1179648 != 0
  • system_tests_usbproxy

    system_tests/Fail (2/5 times with errors)
    • job 178790 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 179050 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (2/5 times with errors)
    • job 178790 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179050 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_USBProxy_fedora-43-xfce/test_020_detach_on_remove (1/5 times with errors)
    • job 179050 AssertionError: 0 != 1 : Device not cleaned up
    TC_20_USBProxy_core3_debian-13-xfce/test_030_detach (1/5 times with errors)
    • job 178790 AssertionError: 0 == 0 : Device disconnection failed
    TC_20_USBProxy_core3_fedora-43-xfce/test_090_attach_stubdom (1/5 times with errors)
    • job 178790 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_network_ipv6

    system_tests/Fail (3/5 times with errors)
    • job 178924 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 178952 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 178963 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    system_tests/Failed (3/5 times with errors)
    • job 178924 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 178952 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 178963 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    VmIPv6Networking_debian-13-xfce/test_001_simple_networking_paused_from_none_to_existent (2/5 times with errors)
    • job 178924 raise TimeoutError from exc_val... TimeoutError
    • job 178952 raise TimeoutError from exc_val... TimeoutError
    VmIPv6Networking_fedora-43-xfce/test_001_simple_networking_paused_from_none_to_existent (1/5 times with errors)
    • job 178952 raise TimeoutError from exc_val... TimeoutError
    VmIPv6Networking_fedora-43-xfce/test_110_dynamic_attach (1/5 times with errors)
    • job 178952 raise TimeoutError from exc_val... TimeoutError
    VmIPv6Networking_fedora-43-xfce/test_501_simple_networking_paused_from_none_to_existent (2/5 times with errors)
    • job 178924 raise TimeoutError from exc_val... TimeoutError
    • job 178963 raise TimeoutError from exc_val... TimeoutError
  • system_tests_network_updates

    system_tests/Fail (1/5 times with errors)
    • job 179082 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    system_tests/Fail (1/5 times with errors)
    • job 178914 Tests qubes.tests.integ.vm_update failed (exit code 1), details rep...
    system_tests/Failed (2/5 times with errors)
    • job 178914 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179082 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_10_QvmTemplate_whonix-gateway-18/test_000_template_list (1/5 times with errors)
    • job 179082 subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_010_instal (1/5 times with errors)
    • job 179082 Error: Failed to download metadata for repo 'test': Cannot download...
    VmUpdates_debian-13-xfce/test_020_updates_available_notification (1/5 times with errors)
    • job 178914 subprocess.CalledProcessError: Command '/usr/lib/qubes/upgrades-sta...
  • system_tests_basic_vm_qrexec_gui_zfs

    system_tests/Fail (1/5 times with errors)
    • job 179073 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Failed (1/5 times with errors)
    • job 179073 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_30_Gui_daemon/test_002_clipboard_300k (1/5 times with errors)
    • job 179073 : Clipboard copy operation failed - content...
  • system_tests_guivm_vnc_gui_interactive

    guivm_manager/ (1/5 times with errors)
    guivm_manager/Failed (1/5 times with errors)
    • job 178799 # Test died: no candidate needle with tag(s) 'menu-qubes-tools' mat...
  • system_tests_audio

    system_tests/Failed (1/5 times with errors)
    • job 179117 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (4/5 times with errors)
    • job 178926 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179054 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179106 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179116 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_224_audio_rec_muted_hvm (2/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 179117 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_224_audio_rec_muted_hvm (1/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 178926 AssertionError: too short audio, expected 10s, got 6.89458049886621...
    • job 179106 AssertionError: too short audio, expected 10s, got 7.86328798185941...
    • job 179116 AssertionError: too short audio, expected 10s, got 6.08503401360544...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_251_audio_playback_audiovm_pipewire_late_start (2/5 times with errors)
    • job 179054 AssertionError: too short audio, expected 10s, got 9.41070294784580...
    • job 179106 AssertionError: too short audio, expected 10s, got 9.44195011337868...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (1/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_260_audio_mic_enabled_switch_audiovm (1/5 times with errors)
    • job 179117 AssertionError: 0 not greater than 0 : Failed to move-source-output
    system_tests/wait_serial (1/5 times with errors)
    • job 179106 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_audio@hw1

    system_tests/Failed (1/5 times with errors)
    • job 179117 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (4/5 times with errors)
    • job 178926 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179054 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179106 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 179116 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_224_audio_rec_muted_hvm (2/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 179117 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_224_audio_rec_muted_hvm (1/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_225_audio_rec_unmuted_hvm (3/5 times with errors)
    • job 178926 AssertionError: too short audio, expected 10s, got 6.89458049886621...
    • job 179106 AssertionError: too short audio, expected 10s, got 7.86328798185941...
    • job 179116 AssertionError: too short audio, expected 10s, got 6.08503401360544...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_251_audio_playback_audiovm_pipewire_late_start (2/5 times with errors)
    • job 179054 AssertionError: too short audio, expected 10s, got 9.41070294784580...
    • job 179106 AssertionError: too short audio, expected 10s, got 9.44195011337868...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (1/5 times with errors)
    • job 178926 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_260_audio_mic_enabled_switch_audiovm (1/5 times with errors)
    • job 179117 AssertionError: 0 not greater than 0 : Failed to move-source-output
    system_tests/wait_serial (1/5 times with errors)
    • job 179106 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_whonix@hw1

    whonixcheck/Failed (3/5 times with errors)
    • job 178922 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179099 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179105 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/Failed (2/5 times with errors)
    • job 179051 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    • job 179102 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/fail (2/5 times with errors)
    whonixcheck/fail (3/5 times with errors)
    whonixcheck/fail (2/5 times with errors)
  • system_tests_basic_vm_qrexec_gui_xfs

    system_tests/ (1/5 times with errors)
    system_tests/Fail (1/5 times with errors)
    • job 178812 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Fail (1/5 times with errors)
    • job 178812 Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...
    system_tests/Failed (1/5 times with errors)
    • job 179072 # Test died: no candidate needle with tag(s) 'x11' matched...
    system_tests/Failed (1/5 times with errors)
    • job 178812 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_NonAudio_whonix-gateway-18-pool/test_010_run_xterm (1/5 times with errors)
    • job 178812 subprocess.CalledProcessError: Command 'qubes.WaitForSession' retur...
    TC_00_Basic/test_040_qdb_watch (1/5 times with errors)
    • job 178812 AssertionError: libvirt event impl drain timeout
  • system_tests_suspend@hw1

    suspend/Failed (2/5 times with errors)
    • job 179086 # Test died: command 'qvm-run -p sys-net true' timed out at /usr/li...
    • job 179098 # Test died: command 'qvm-run -p sys-net true' timed out at /usr/li...
    suspend/Failed (3/5 times with errors)
    • job 178918 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    • job 179097 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    • job 179101 # Test died: command '! qvm-check sys-usb || qvm-run -p sys-usb tru...
    suspend/wait_serial (2/5 times with errors)
    suspend/wait_serial (3/5 times with errors)
    • job 178918 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    • job 179097 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    • job 179101 # Command: ! qvm-check sys-usb || qvm-run -p sys-usb true...
    suspend/wait_serial (2/5 times with errors)
    suspend/wait_serial (3/5 times with errors)
    • job 178918 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
    • job 179097 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
    • job 179101 # wait_serial expected: "lspci; echo 2E8vz-\$?-"...
  • system_tests_basic_vm_qrexec_gui@hw7

    system_tests/Fail (1/5 times with errors)
    • job 178906 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Failed (1/5 times with errors)
    • job 178906 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Basic/test_141_libvirt_objects_reconnect (1/5 times with errors)
    • job 178906 AssertionError: libvirt event impl drain timeout
  • system_tests_gui_tools@hw7

    desktop_linux_manager_config/ (3/5 times with errors)
    desktop_linux_manager_config/Failed (3/5 times with errors)
    • job 178835 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    • job 178837 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    • job 178840 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
    desktop_linux_manager_config/wait_serial (1/5 times with errors)
    • job 178837 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....

Performance Tests

Performance degradation:

25 performance degradations
  • debian-13-xfce_socket-data-duplex: 95.64 🔻 ( previous job: 85.67, degradation: 111.64%)
  • fedora-43-xfce_socket-root: 8.84 🔻 ( previous job: 7.96, degradation: 111.15%)
  • whonix-gateway-18_socket-root: 10.11 🔻 ( previous job: 8.37, degradation: 120.81%)
  • whonix-gateway-18_exec-data-simplex: 68.94 🔻 ( previous job: 62.50, degradation: 110.31%)
  • whonix-gateway-18_socket-data-duplex: 109.56 🔻 ( previous job: 90.03, degradation: 121.69%)
  • whonix-workstation-18_socket: 8.81 🔻 ( previous job: 7.66, degradation: 114.98%)
  • whonix-workstation-18_socket-root: 10.26 🔻 ( previous job: 8.87, degradation: 115.72%)
  • whonix-workstation-18_socket-data-duplex: 105.07 🔻 ( previous job: 92.97, degradation: 113.01%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 107448.00 🔻 ( previous job: 119690.00, degradation: 89.77%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 5538.00 🔻 ( previous job: 6899.00, degradation: 80.27%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3915.00 🔻 ( previous job: 5055.00, degradation: 77.45%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 215224.00 🔻 ( previous job: 429040.00, degradation: 50.16%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 196635.00 🔻 ( previous job: 257066.00, degradation: 76.49%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 8551.00 🔻 ( previous job: 10623.00, degradation: 80.50%)
  • fedora-43-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 266136.00 🔻 ( previous job: 415113.00, degradation: 64.11%)
  • fedora-43-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 57138.00 🔻 ( previous job: 78270.00, degradation: 73.00%)
  • fedora-43-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 7634.00 🔻 ( previous job: 8769.00, degradation: 87.06%)
  • fedora-43-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 57116.00 🔻 ( previous job: 81357.00, degradation: 70.20%)
  • fedora-43-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 1698.00 🔻 ( previous job: 3674.00, degradation: 46.22%)
  • fedora-43-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 498.00 🔻 ( previous job: 567.00, degradation: 87.83%)
  • fedora-43-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 16870.00 🔻 ( previous job: 26016.00, degradation: 64.84%)
  • whonix-workstation-18_dom0-dispvm-api (mean:9.797): 117.57 🔻 ( previous job: 97.14, degradation: 121.03%)
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:11.693): 140.31 🔻 ( previous job: 121.86, degradation: 115.15%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-0-api (mean:4.475): 53.70 🔻 ( previous job: 48.26, degradation: 111.27%)
  • whonix-workstation-18_dom0-dispvm-preload-4-api (mean:3.602): 43.22 🔻 ( previous job: 38.29, degradation: 112.89%)

Remaining performance tests:

86 tests
  • debian-13-xfce_exec: 8.45 🔻 ( previous job: 7.85, degradation: 107.56%)
  • debian-13-xfce_exec-root: 27.35 🔻 ( previous job: 26.74, degradation: 102.28%)
  • debian-13-xfce_socket: 8.30 🟢 ( previous job: 8.37, improvement: 99.21%)
  • debian-13-xfce_socket-root: 9.13 🔻 ( previous job: 9.13, degradation: 100.01%)
  • debian-13-xfce_exec-data-simplex: 60.24 🟢 ( previous job: 63.05, improvement: 95.53%)
  • debian-13-xfce_exec-data-duplex: 66.35 🔻 ( previous job: 62.45, degradation: 106.24%)
  • debian-13-xfce_exec-data-duplex-root: 77.17 🟢 ( previous job: 78.04, improvement: 98.89%)
  • fedora-43-xfce_exec: 9.07 🟢 ( previous job: 9.10, improvement: 99.66%)
  • fedora-43-xfce_exec-root: 68.68 🟢 ( previous job: 69.86, improvement: 98.32%)
  • fedora-43-xfce_socket: 8.70 🔻 ( previous job: 8.52, degradation: 102.21%)
  • fedora-43-xfce_exec-data-simplex: 66.08 🔻 ( previous job: 60.82, degradation: 108.65%)
  • fedora-43-xfce_exec-data-duplex: 67.96 🟢 ( previous job: 68.31, improvement: 99.49%)
  • fedora-43-xfce_exec-data-duplex-root: 99.14 🔻 ( previous job: 98.74, degradation: 100.41%)
  • fedora-43-xfce_socket-data-duplex: 86.85 🟢 ( previous job: 91.81, improvement: 94.59%)
  • whonix-gateway-18_exec: 8.12 🔻 ( previous job: 8.01, degradation: 101.39%)
  • whonix-gateway-18_exec-root: 125.88 🟢 ( previous job: 126.14, improvement: 99.79%)
  • whonix-gateway-18_socket: 9.29 🔻 ( previous job: 8.63, degradation: 107.64%)
  • whonix-gateway-18_exec-data-duplex: 72.85 🔻 ( previous job: 68.01, degradation: 107.11%)
  • whonix-gateway-18_exec-data-duplex-root: 128.41 🟢 ( previous job: 137.28, improvement: 93.54%)
  • whonix-workstation-18_exec: 8.23 🔻 ( previous job: 8.14, degradation: 101.17%)
  • whonix-workstation-18_exec-root: 132.66 🟢 ( previous job: 144.02, improvement: 92.11%)
  • whonix-workstation-18_exec-data-simplex: 63.12 🟢 ( previous job: 66.36, improvement: 95.13%)
  • whonix-workstation-18_exec-data-duplex: 67.54 🔻 ( previous job: 65.56, degradation: 103.02%)
  • whonix-workstation-18_exec-data-duplex-root: 135.32 🔻 ( previous job: 130.67, degradation: 103.55%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 381994.00 🔻 ( previous job: 388793.00, degradation: 98.25%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 362829.00 🟢 ( previous job: 245223.00, improvement: 147.96%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 199949.00 🔻 ( previous job: 199974.00, degradation: 99.99%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 16882.00 🟢 ( previous job: 13948.00, improvement: 121.04%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 9151.00 🟢 ( previous job: 8963.00, improvement: 102.10%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 440578.00 🔻 ( previous job: 446202.00, degradation: 98.74%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 184675.00 🔻 ( previous job: 201978.00, degradation: 91.43%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 101097.00 🔻 ( previous job: 102155.00, degradation: 98.96%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 8499.00 🟢 ( previous job: 8179.00, improvement: 103.91%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 5034.00 🟢 ( previous job: 4404.00, improvement: 114.31%)
  • fedora-43-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 126444.00 🔻 ( previous job: 138144.00, degradation: 91.53%)
  • fedora-43-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 316599.00 🟢 ( previous job: 310781.00, improvement: 101.87%)
  • fedora-43-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 88411.00 🔻 ( previous job: 90877.00, degradation: 97.29%)
  • fedora-43-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 1541.00 🟢 ( previous job: 1519.00, improvement: 101.45%)
  • fedora-43-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 979.00 🟢 ( previous job: 262.00, improvement: 373.66%)
  • fedora-43-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 335759.00 🔻 ( previous job: 355690.00, degradation: 94.40%)
  • fedora-43-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 134271.00 🟢 ( previous job: 130275.00, improvement: 103.07%)
  • fedora-43-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 338577.00 🟢 ( previous job: 294295.00, improvement: 115.05%)
  • fedora-43-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 71536.00 🔻 ( previous job: 71992.00, degradation: 99.37%)
  • fedora-43-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 8028.00 🔻 ( previous job: 8429.00, degradation: 95.24%)
  • fedora-43-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 387500.00 🟢 ( previous job: 378957.00, improvement: 102.25%)
  • fedora-43-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 175088.00 🟢 ( previous job: 95037.00, improvement: 184.23%)
  • fedora-43-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 285016.00 🟢 ( previous job: 202428.00, improvement: 140.80%)
  • fedora-43-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 76907.00 🔻 ( previous job: 79218.00, degradation: 97.08%)
  • fedora-43-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 4312.00 🟢 ( previous job: 1720.00, improvement: 250.70%)
  • fedora-43-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 9655.00 🟢 ( previous job: 8667.00, improvement: 111.40%)
  • fedora-43-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1721.00 🟢 ( previous job: 548.00, improvement: 314.05%)
  • debian-13-xfce_dom0-dispvm-api (mean:6.313): 75.75 🔻 ( previous job: 74.50, degradation: 101.69%)
  • debian-13-xfce_dom0-dispvm-gui-api (mean:8.241): 98.89 🔻 ( previous job: 93.50, degradation: 105.77%)
  • debian-13-xfce_dom0-dispvm-preload-2-api (mean:3.175): 38.09 🔻 ( previous job: 37.79, degradation: 100.81%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-0-api (mean:2.986): 35.83 🔻 ( previous job: 34.29, degradation: 104.48%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:3.449): 41.39 🔻 ( previous job: 38.52, degradation: 107.46%)
  • debian-13-xfce_dom0-dispvm-preload-4-api (mean:2.458): 29.50 🟢 ( previous job: 30.73, improvement: 95.98%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-0-api (mean:2.659): 31.91 🔻 ( previous job: 29.50, degradation: 108.16%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:2.558): 30.69 🔻 ( previous job: 28.74, degradation: 106.80%)
  • debian-13-xfce_dom0-dispvm-preload-2-gui-api (mean:4.768): 57.21 🔻 ( previous job: 53.65, degradation: 106.64%)
  • debian-13-xfce_dom0-dispvm-preload-4-gui-api (mean:3.824): 45.89 🔻 ( previous job: 44.40, degradation: 103.35%)
  • debian-13-xfce_dom0-dispvm-preload-6-gui-api (mean:3.407): 40.88 🟢 ( previous job: 41.47, improvement: 98.58%)
  • debian-13-xfce_dom0-vm-api (mean:0.029): 0.35 🟢 ( previous job: 0.62, improvement: 57.10%)
  • debian-13-xfce_dom0-vm-gui-api (mean:0.032): 0.38 🟢 ( previous job: 0.47, improvement: 81.51%)
  • fedora-43-xfce_dom0-dispvm-api (mean:7.617): 91.40 🔻 ( previous job: 89.33, degradation: 102.32%)
  • fedora-43-xfce_dom0-dispvm-gui-api (mean:9.882): 118.58 🔻 ( previous job: 112.35, degradation: 105.55%)
  • fedora-43-xfce_dom0-dispvm-preload-2-api (mean:3.732): 44.78 🔻 ( previous job: 44.03, degradation: 101.72%)
  • fedora-43-xfce_dom0-dispvm-preload-2-delay-0-api (mean:3.723): 44.68 🔻 ( previous job: 41.41, degradation: 107.89%)
  • fedora-43-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:3.982): 47.78 🔻 ( previous job: 46.26, degradation: 103.29%)
  • fedora-43-xfce_dom0-dispvm-preload-4-api (mean:2.929): 35.15 🟢 ( previous job: 36.18, improvement: 97.13%)
  • fedora-43-xfce_dom0-dispvm-preload-4-delay-0-api (mean:2.786): 33.43 🟢 ( previous job: 36.15, improvement: 92.48%)
  • fedora-43-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.232): 38.79 🔻 ( previous job: 36.13, degradation: 107.36%)
  • fedora-43-xfce_dom0-dispvm-preload-2-gui-api (mean:5.42): 65.04 🔻 ( previous job: 63.91, degradation: 101.76%)
  • fedora-43-xfce_dom0-dispvm-preload-4-gui-api (mean:4.122): 49.47 🟢 ( previous job: 52.06, improvement: 95.02%)
  • fedora-43-xfce_dom0-dispvm-preload-6-gui-api (mean:3.772): 45.27 🟢 ( previous job: 46.35, improvement: 97.66%)
  • fedora-43-xfce_dom0-vm-api (mean:0.03): 0.36 🟢 ( previous job: 0.47, improvement: 78.49%)
  • fedora-43-xfce_dom0-vm-gui-api (mean:0.04): 0.48 🔻 ( previous job: 0.46, degradation: 106.59%)
  • whonix-workstation-18_dom0-dispvm-preload-2-api (mean:4.426): 53.12 🔻 ( previous job: 48.39, degradation: 109.77%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:5.222): 62.67 🔻 ( previous job: 59.22, degradation: 105.83%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-0-api (mean:3.539): 42.46 🟢 ( previous job: 43.23, improvement: 98.22%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.654): 43.85 🔻 ( previous job: 42.67, degradation: 102.77%)
  • whonix-workstation-18_dom0-dispvm-preload-2-gui-api (mean:6.047): 72.57 🔻 ( previous job: 72.05, degradation: 100.72%)
  • whonix-workstation-18_dom0-dispvm-preload-4-gui-api (mean:4.723): 56.67 🔻 ( previous job: 52.81, degradation: 107.31%)
  • whonix-workstation-18_dom0-dispvm-preload-6-gui-api (mean:3.896): 46.75 🟢 ( previous job: 50.72, improvement: 92.18%)
  • whonix-workstation-18_dom0-vm-api (mean:0.036): 0.43 🟢 ( previous job: 0.43, improvement: 99.08%)
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.032): 0.38 🟢 ( previous job: 0.56, improvement: 69.06%)

@marmarek marmarek merged commit 0860aba into QubesOS:main May 22, 2026
4 of 6 checks passed
ben-grande added a commit to ben-grande/qubes-desktop-linux-manager that referenced this pull request May 27, 2026
Waiting for the server to send the result of the API calls, allows
dealing with failures/exceptions:

- QubesVM.shutdown -> .shutdown(wait=True)
- QubesVM.run_service -> .run_service_for_stdio

It also does not block the widget from being opened again even if an
action is still running. This allows, for example:

- To create disposable qube and attach device to it (which takes 10s),
  but not block the widget from opening
- To detach and shutdown disposable that is hanging, without hanging the
  widget

For qui/tray/domains.py, the "widget.destroy()" is called earlier, cause
it's not needed after the response is received. Else it hangs until the
"react_to_question" finishes.

For: QubesOS/qubes-issues#10648
For: QubesOS/qubes-issues#10651
For: QubesOS/qubes-issues#10835
Requires: QubesOS/qubes-core-admin#807
Requires: QubesOS/qubes-core-admin-client#469
ben-grande added a commit to ben-grande/qubes-desktop-linux-manager that referenced this pull request May 27, 2026
Waiting for the server to send the result of the API calls, allows
dealing with failures/exceptions:

- QubesVM.shutdown -> .shutdown(wait=True)
- QubesVM.run_service -> .run_service_for_stdio

It also does not block the widget from being opened again even if an
action is still running. This allows, for example:

- To create disposable qube and attach device to it (which takes 10s),
  but not block the widget from opening
- To detach and shutdown disposable that is hanging, without hanging the
  widget

For: QubesOS/qubes-issues#10648
For: QubesOS/qubes-issues#10651
For: QubesOS/qubes-issues#10835
Requires: QubesOS/qubes-core-admin#807
Requires: QubesOS/qubes-core-admin-client#469
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants