Skip to content

q-dev: avoid zombie USB device#55

Open
piotrbartman wants to merge 2 commits into
QubesOS:mainfrom
piotrbartman:qdev/zombie
Open

q-dev: avoid zombie USB device#55
piotrbartman wants to merge 2 commits into
QubesOS:mainfrom
piotrbartman:qdev/zombie

Conversation

@piotrbartman

Copy link
Copy Markdown
Member

After detaching from the frontend VM, the USB device remained under the control of the usbip driver. This caused the device to remain visible in the backend vm but unusable there (zombie). The issue is that, for example, a USB stick would not expose its partitions to the backend, preventing us from using them (e.g. attaching partition to frontend vm).

After detaching from the frontend vm, the device remained under the control of the usbip driver. This caused the device to remain visible in the backend vm but unusable there (zombie). The issue is that, for example, a USB stick would not expose its partitions to the backend, preventing us from using them (e.g. attaching partition to frontend vm).
@qubesos-bot

qubesos-bot commented May 5, 2026

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=2026071723-devel&flavor=pull-requests

Test run included the following:

Upload failures

  • system_tests_backup
    • system_tests: Failed (test died)
      # Test died: command 'curl --form upload=@tests-qubes.tests.integ.b...

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_network

  • system_tests_pvgrub_salt_storage

    • StorageFile: test_003_snapshot (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_extra

  • system_tests_devices

  • system_tests_guivm_vnc_gui_interactive

    • guivm_manager: unnamed test (unknown)
    • guivm_manager: Failed (test died)
      # Test died: no candidate needle with tag(s) 'menu-qubes-tools' mat...
  • system_tests_audio

  • system_tests_guivm_gpu_gui_interactive@hw13

    • guivm_manager: unnamed test (unknown)
    • guivm_manager: Failed (test died)
      # Test died: no candidate needle with tag(s) 'menu-qubes-tools' mat...
  • system_tests_audio@hw1

  • system_tests_qrexec_perf@hw1

    • TC_00_QrexecPerf_fedora-44-xfce: test_100_simple_data_simplex (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

Failed tests

22 failures
  • system_tests_network

  • system_tests_pvgrub_salt_storage

    • StorageFile: test_003_snapshot (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_extra

  • system_tests_gui_interactive

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

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

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

  • system_tests_network_ipv6

  • system_tests_devices

  • system_tests_kde_gui_interactive

    • [unstable] gui_keyboard_layout: wait_serial (unknown)
      # Command: qvm-shutdown --wait work...

    • [unstable] gui_keyboard_layout: Failed (test died + timed out)
      # Test died: command 'qvm-shutdown --wait work' timed out at /usr/l...

  • system_tests_guivm_vnc_gui_interactive

    • guivm_manager: unnamed test (unknown)
    • guivm_manager: Failed (test died)
      # Test died: no candidate needle with tag(s) 'menu-qubes-tools' mat...
  • system_tests_audio

  • system_tests_guivm_gpu_gui_interactive@hw13

    • guivm_manager: unnamed test (unknown)
    • guivm_manager: Failed (test died)
      # Test died: no candidate needle with tag(s) 'menu-qubes-tools' mat...
  • system_tests_whonix@hw1

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

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

  • system_tests_audio@hw1

  • system_tests_qrexec_perf@hw1

    • TC_00_QrexecPerf_fedora-44-xfce: test_100_simple_data_simplex (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

Fixed failures

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

25 fixed
  • system_tests_whonix

    • whonixcheck: Failed (test died)
      # Test died: command 'qvm-shutdown --wait anon-whonix ' failed at /...
  • system_tests_pvgrub_salt_storage

    • 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_debian-13-xfce: test_000_qemu_tablet (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • 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

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

  • 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_audio

  • 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' ...
  • system_tests_audio@hw1

Unstable tests

Details
  • system_tests_whonix

    whonixcheck/Failed (1/5 times with errors)
    • job 188636 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/fail (1/5 times with errors)
    • job 188636 Whonixcheck for whonix-workstation-18 failed...
  • system_tests_gui_tools

    desktop_linux_manager_config/ (1/5 times with errors)
    desktop_linux_manager_config/Failed (1/5 times with errors)
    • job 188475 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
  • system_tests_network

    system_tests/Fail (2/5 times with errors)
    • job 187594 Tests qubes.tests.integ.network failed (exit code 1), details repor...
    • job 187732 Tests qubes.tests.integ.network failed (exit code 1), details repor...
    system_tests/Failed (2/5 times with errors)
    • job 187594 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 187732 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    VmNetworking_fedora-43-xfce/test_000_simple_networking (1/5 times with errors)
    • job 187732 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmNetworking_fedora-43-xfce/test_031_firewall_dynamic_block (1/5 times with errors)
    • job 187732 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmNetworking_fedora-43-xfce/test_113_reattach_after_provider_kill (1/5 times with errors)
    • job 187594 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmNetworking_fedora-43-xfce/test_203_fake_ip_inter_vm_allow (1/5 times with errors)
    • job 187594 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_pvgrub_salt_storage

    system_tests/Fail (2/5 times with errors)
    • job 187597 Tests qubes.tests.integ.storage failed (exit code 1), details repor...
    • job 187735 Tests qubes.tests.integ.storage failed (exit code 1), details repor...
    system_tests/Failed (3/5 times with errors)
    • job 188480 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188519 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188668 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (2/5 times with errors)
    • job 187597 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 187735 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_41_HVMGrub_debian-13-xfce/test_000_standalone_vm (1/5 times with errors)
    • job 187597 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-43-xfce/test_000_standalone_vm (2/5 times with errors)
    • job 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188668 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_001_standalone_vm_dracut (2/5 times with errors)
    • job 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188480 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    StorageReflinkOnBtrfs/test_002_read_only (1/5 times with errors)
    • job 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    StorageReflinkOnExt4/test_003_snapshot (1/5 times with errors)
    • job 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    StorageLVM/test_004_snapshot_non_persistent (1/5 times with errors)
    • job 187597 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_010_template_based_vm (4/5 times with errors)
    • job 187597 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188480 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188668 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 187735 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188480 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188668 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_splitgpg

    system_tests/Failed (2/5 times with errors)
    • job 187599 # Test died: command 'testfunc qubes.tests.extra' timed out at qube...
    • job 188482 # Test died: command 'testfunc qubes.tests.extra' timed out at qube...
    system_tests/wait_serial (2/5 times with errors)
    • job 187599 # Command: testfunc qubes.tests.extra...
    • job 188482 # Command: testfunc qubes.tests.extra...
  • system_tests_extra

    system_tests/Fail (4/5 times with errors)
    • job 187590 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 187728 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 188473 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 188661 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (3/5 times with errors)
    • job 187728 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188473 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188661 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    system_tests/Failed (1/5 times with errors)
    • job 187590 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_01_InputProxyExclude_debian-13-xfce/test_000_qemu_tablet (2/5 times with errors)
    • job 187590 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188661 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_01_InputProxyExclude_fedora-43-xfce/test_000_qemu_tablet (3/5 times with errors)
    • job 187590 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188473 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188661 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_00_InputProxy_fedora-43-xfce/test_000_simple_mouse (1/5 times with errors)
    • job 187728 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_00_PDFConverter_debian-13-xfce/test_002_500_pages (3/5 times with errors)
    • job 187590 AssertionError: 1 != 0 : qvm-convert-pdf failed: b'Sending file to ...
    • job 187728 AssertionError: 1 != 0 : qvm-convert-pdf failed: b'Sending file to ...
    • job 188473 AssertionError: 1 != 0 : qvm-convert-pdf failed: b'Sending file to ...
    TC_00_PDFConverter_fedora-43-xfce/test_002_500_pages (1/5 times with errors)
    • job 187728 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_00_PDFConverter_debian-13-xfce/test_004_cancel_stops_conversion (1/5 times with errors)
    • job 188661 AssertionError: DispVM not cleaned up 20s after cancel: ['disp7751']
    TC_00_PDFConverter_fedora-43-xfce/test_004_cancel_stops_conversion (3/5 times with errors)
    • job 187590 AssertionError: DispVM not cleaned up 20s after cancel: ['disp2361']
    • job 188473 AssertionError: DispVM not cleaned up 20s after cancel: ['disp758']
    • job 188661 AssertionError: DispVM not cleaned up 20s after cancel: ['disp8125']
    TC_00_PDFConverter_debian-13-xfce/test_005_docx (2/5 times with errors)
    • job 187728 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    • job 188473 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    TC_00_PDFConverter_debian-13-xfce/test_006_odt (2/5 times with errors)
    • job 187728 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    • job 188473 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    TC_00_PDFConverter_debian-13-xfce/test_007_xlsx (2/5 times with errors)
    • job 187728 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    • job 188473 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    TC_00_PDFConverter_debian-13-xfce/test_008_ods (2/5 times with errors)
    • job 187728 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    • job 188473 AssertionError: 127 != 0 : qvm-convert-file failed: b'-bash: line 1...
    TC_00_QVCTest_debian-13-xfce/test_010_screenshare (1/5 times with errors)
    • job 187590 AssertionError: 2.4614345149565264 not less than 2.0
    TC_00_Direct_whonix-workstation-18/test_060_import_secret (1/5 times with errors)
    • job 188661 AssertionError: key generation failed: b''b"gpg: keybox '/home/user...
  • system_tests_gui_interactive

    collect_logs/Failed (1/5 times with errors)
    • job 187591 # Test died: command 'curl --form upload=@journalctl.log --form upn...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187591 # Command: curl --form upload=@journalctl.log --form upname=collect...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187591 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_guivm_gui_interactive

    collect_logs/Failed (1/5 times with errors)
    • job 187593 # Test died: command 'curl --form upload=@journalctl.log --form upn...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187593 # Command: curl --form upload=@journalctl.log --form upname=collect...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187593 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_usbproxy

    system_tests/Fail (2/5 times with errors)
    • job 187575 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    • job 187702 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (2/5 times with errors)
    • job 187575 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 187702 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_USBProxy_fedora-43-xfce/test_000_attach_detach (1/5 times with errors)
    • job 187702 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_USBProxy_core3_fedora-43-xfce/test_090_attach_stubdom (1/5 times with errors)
    • job 187575 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_network_ipv6

    system_tests/Fail (4/5 times with errors)
    • job 187733 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 188517 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 188525 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 188666 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    system_tests/Failed (4/5 times with errors)
    • job 187733 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188517 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188525 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188666 # 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 (1/5 times with errors)
    • job 188517 subprocess.CalledProcessError: Command 'qubes.WaitForNetworkUplink'...
    VmIPv6Networking_fedora-43-xfce/test_040_inter_vm (1/5 times with errors)
    • job 188666 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_debian-13-xfce/test_110_dynamic_attach (1/5 times with errors)
    • job 188525 ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 125 != 0
    VmIPv6Networking_fedora-43-xfce/test_112_reattach_after_provider_shutdown (1/5 times with errors)
    • job 188666 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_fedora-43-xfce/test_113_reattach_after_provider_kill (1/5 times with errors)
    • job 188666 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_fedora-43-xfce/test_203_fake_ip_inter_vm_allow (1/5 times with errors)
    • job 187733 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_fedora-43-xfce/test_204_fake_ip_proxy (1/5 times with errors)
    • job 187733 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_fedora-43-xfce/test_501_simple_networking_paused_change_shutdown_old (1/5 times with errors)
    • job 187733 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    VmIPv6Networking_fedora-43-xfce/test_501_simple_networking_paused_from_none_to_existent (1/5 times with errors)
    • job 188517 subprocess.CalledProcessError: Command 'qubes.WaitForNetworkUplink'...
    system_tests/wait_serial (1/5 times with errors)
    • job 188517 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_network_updates

    system_tests/Fail (3/5 times with errors)
    • job 187596 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    • job 188479 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    • job 188667 Tests qubes.tests.integ.dom0_update failed (exit code 1), details r...
    system_tests/Failed (3/5 times with errors)
    • job 187596 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188479 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188667 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_000_update (2/5 times with errors)
    • job 187596 Error: Failed to download metadata for repo 'test': Cannot download...
    • job 188667 Error: Failed to download metadata for repo 'test': Cannot download...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_000_update_salt (2/5 times with errors)
    • job 187596 ?[0;31mDuration: 142521.273 ms?[0;0m... ?[0;31m Changes: ?[0;0m
    • job 188479 ?[0;31mDuration: 136920.941 ms?[0;0m... ?[0;31m Changes: ?[0;0m
    TC_00_Dom0Upgrade_whonix-gateway-18/test_005_update_flag_clear (1/5 times with errors)
    • job 187596 Error: Failed to download metadata for repo 'test': Cannot download...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_006_update_flag_clear (1/5 times with errors)
    • job 188667 Error: Failed to download metadata for repo 'test': Cannot download...
  • system_tests_dispvm

    system_tests/Fail (3/5 times with errors)
    • job 187727 Tests qubes.tests.integ.dispvm failed (exit code 1), details report...
    • job 188472 Tests qubes.tests.integ.dispvm failed (exit code 1), details report...
    • job 188511 Tests qubes.tests.integ.dispvm failed (exit code 1), details report...
    system_tests/Failed (3/5 times with errors)
    • job 187727 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188472 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188511 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_04_DispVM/test_003_cleanup_destroyed (1/5 times with errors)
    • job 187727 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_21_DispVM_Preload/test_011_preload_reject_max (1/5 times with errors)
    • job 188511 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
    TC_21_DispVM_Preload/test_015_preload_race_more (2/5 times with errors)
    • job 187727 raise TimeoutError from exc_val... TimeoutError
    • job 188472 raise TimeoutError from exc_val... TimeoutError
    TC_20_DispVM_debian-13-xfce/test_080_gui_app (1/5 times with errors)
    • job 188472 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
  • system_tests_kde_gui_interactive

    gui_keyboard_layout/Failed (1/5 times with errors)
    • job 188640 # Test died: command 'qvm-shutdown --wait work' timed out at /usr/l...
    gui_keyboard_layout/wait_serial (1/5 times with errors)
    • job 188640 # Command: qvm-shutdown --wait work...
  • system_tests_audio

    TC_20_AudioVM_Pulse_fedora-43-xfce/test_223_audio_play_hvm (1/5 times with errors)
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_224_audio_rec_muted_hvm (1/5 times with errors)
    • job 188639 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 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_225_audio_rec_unmuted_hvm (5/5 times with errors)
    • job 187706 AssertionError: too short audio, expected 10s, got 7.27160997732426...
    • job 188451 AssertionError: too short audio, expected 10s, got 5.86424036281179...
    • job 188499 AssertionError: too short audio, expected 10s, got 7.85712018140589...
    • job 188526 AssertionError: too short audio, expected 10s, got 6.66848072562358...
    • job 188639 AssertionError: too short audio, expected 10s, got 6.83272108843537...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (2/5 times with errors)
    • job 187706 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_PipeWire_debian-13-xfce/test_260_audio_mic_enabled_switch_audiovm (1/5 times with errors)
    • job 187706 AssertionError: Failed to get mic attach/detach status!
  • system_tests_whonix@hw1

    whonixcheck/Failed (1/5 times with errors)
    • job 188636 # Test died: systemcheck failed at qubesos/tests/whonixcheck.pm lin...
    whonixcheck/fail (1/5 times with errors)
    • job 188636 Whonixcheck for whonix-workstation-18 failed...
  • system_tests_basic_vm_qrexec_gui_btrfs

    system_tests/Fail (1/5 times with errors)
    • job 188655 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Fail (1/5 times with errors)
    • job 188655 Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...
    system_tests/Failed (1/5 times with errors)
    • job 188655 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_NonAudio_debian-13-xfce-pool/test_000_start_shutdown (1/5 times with errors)
    • job 188655 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
    TC_00_Basic/test_210_bootmode_template (1/5 times with errors)
    • job 188655 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_basic_vm_qrexec_gui_xfs

    system_tests/Fail (1/5 times with errors)
    • job 187724 Tests qubes.tests.integ.basic failed (exit code 1), details reporte...
    system_tests/Failed (1/5 times with errors)
    • job 187724 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Basic/test_206_shutdown_paused (1/5 times with errors)
    • job 187724 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_gui_interactive@hw7

    collect_logs/Failed (1/5 times with errors)
    • job 187591 # Test died: command 'curl --form upload=@journalctl.log --form upn...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187591 # Command: curl --form upload=@journalctl.log --form upname=collect...
    collect_logs/wait_serial (1/5 times with errors)
    • job 187591 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_gui_tools@hw7

    desktop_linux_manager_config/ (1/5 times with errors)
    desktop_linux_manager_config/Failed (1/5 times with errors)
    • job 188475 # Test died: no candidate needle with tag(s) 'qubes-global-config' ...
  • system_tests_audio@hw1

    TC_20_AudioVM_Pulse_fedora-43-xfce/test_223_audio_play_hvm (1/5 times with errors)
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_224_audio_rec_muted_hvm (1/5 times with errors)
    • job 188639 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 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_Pulse_whonix-workstation-18/test_225_audio_rec_unmuted_hvm (5/5 times with errors)
    • job 187706 AssertionError: too short audio, expected 10s, got 7.27160997732426...
    • job 188451 AssertionError: too short audio, expected 10s, got 5.86424036281179...
    • job 188499 AssertionError: too short audio, expected 10s, got 7.85712018140589...
    • job 188526 AssertionError: too short audio, expected 10s, got 6.66848072562358...
    • job 188639 AssertionError: too short audio, expected 10s, got 6.83272108843537...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (2/5 times with errors)
    • job 187706 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_20_AudioVM_PipeWire_debian-13-xfce/test_260_audio_mic_enabled_switch_audiovm (1/5 times with errors)
    • job 187706 AssertionError: Failed to get mic attach/detach status!

Performance Tests

Performance degradation:

19 performance degradations
  • debian-13-xfce_dom0-dispvm-gui-api (mean:8.61): 103.32 🔻 ( previous job: 93.50, degradation: 110.51%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-0-api (mean:2.787): 33.45 🔻 ( previous job: 29.50, degradation: 113.38%)
  • whonix-workstation-18_dom0-dispvm-api (mean:10.141): 121.70 🔻 ( previous job: 97.14, degradation: 125.29%)
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:11.946): 143.35 🔻 ( previous job: 121.86, degradation: 117.64%)
  • whonix-workstation-18_dom0-dispvm-preload-2-api (mean:4.499): 53.99 🔻 ( previous job: 48.39, degradation: 111.56%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-0-api (mean:4.589): 55.07 🔻 ( previous job: 48.26, degradation: 114.10%)
  • whonix-workstation-18_dom0-dispvm-preload-4-api (mean:3.705): 44.46 🔻 ( previous job: 38.29, degradation: 116.12%)
  • whonix-workstation-18_dom0-vm-api (mean:0.046): 0.56 🔻 ( previous job: 0.43, degradation: 128.18%)
  • debian-13-xfce_socket: 9.85 🔻 ( previous job: 8.37, degradation: 117.65%)
  • whonix-gateway-18_exec: 8.99 🔻 ( previous job: 8.01, degradation: 112.23%)
  • whonix-gateway-18_exec-root: 152.13 🔻 ( previous job: 126.14, degradation: 120.61%)
  • whonix-gateway-18_socket-data-duplex: 107.53 🔻 ( previous job: 90.03, degradation: 119.43%)
  • whonix-workstation-18_exec-root: 165.74 🔻 ( previous job: 144.02, degradation: 115.08%)
  • whonix-workstation-18_socket: 9.47 🔻 ( previous job: 7.66, degradation: 123.57%)
  • whonix-workstation-18_exec-data-duplex-root: 155.13 🔻 ( previous job: 130.67, degradation: 118.72%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 162286.00 🔻 ( previous job: 199974.00, degradation: 81.15%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 6712.00 🔻 ( previous job: 8963.00, degradation: 74.89%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3298.00 🔻 ( previous job: 5055.00, degradation: 65.24%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 83016.00 🔻 ( previous job: 102155.00, degradation: 81.26%)

Remaining performance tests:

91 tests
  • debian-13-xfce_dom0-dispvm-api (mean:6.574): 78.89 🔻 ( previous job: 74.50, degradation: 105.90%)
  • debian-13-xfce_dom0-dispvm-preload-2-api (mean:3.406): 40.87 🔻 ( previous job: 37.79, degradation: 108.17%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-0-api (mean:3.128): 37.53 🔻 ( previous job: 34.29, degradation: 109.45%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:3.505): 42.06 🔻 ( previous job: 38.52, degradation: 109.20%)
  • debian-13-xfce_dom0-dispvm-preload-4-api (mean:2.616): 31.39 🔻 ( previous job: 30.73, degradation: 102.13%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:2.599): 31.19 🔻 ( previous job: 28.74, degradation: 108.51%)
  • debian-13-xfce_dom0-dispvm-preload-2-gui-api (mean:4.662): 55.94 🔻 ( previous job: 53.65, degradation: 104.27%)
  • debian-13-xfce_dom0-dispvm-preload-4-gui-api (mean:3.829): 45.95 🔻 ( previous job: 44.40, degradation: 103.49%)
  • debian-13-xfce_dom0-dispvm-preload-6-gui-api (mean:3.252): 39.03 🟢 ( previous job: 41.47, improvement: 94.11%)
  • debian-13-xfce_dom0-vm-api (mean:0.03): 0.36 🟢 ( previous job: 0.62, improvement: 57.74%)
  • debian-13-xfce_dom0-vm-gui-api (mean:0.031): 0.38 🟢 ( previous job: 0.47, improvement: 81.08%)
  • fedora-44-xfce_dom0-dispvm-api (mean:8.636): 103.63
  • fedora-44-xfce_dom0-dispvm-gui-api (mean:10.799): 129.59
  • fedora-44-xfce_dom0-dispvm-preload-2-api (mean:4.097): 49.16
  • fedora-44-xfce_dom0-dispvm-preload-2-delay-0-api (mean:3.849): 46.19
  • fedora-44-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:4.259): 51.10
  • fedora-44-xfce_dom0-dispvm-preload-4-api (mean:3.233): 38.79
  • fedora-44-xfce_dom0-dispvm-preload-4-delay-0-api (mean:3.059): 36.71
  • fedora-44-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.144): 37.73
  • fedora-44-xfce_dom0-dispvm-preload-2-gui-api (mean:5.466): 65.59
  • fedora-44-xfce_dom0-dispvm-preload-4-gui-api (mean:4.381): 52.57
  • fedora-44-xfce_dom0-dispvm-preload-6-gui-api (mean:3.546): 42.55
  • fedora-44-xfce_dom0-vm-api (mean:0.033): 0.40
  • fedora-44-xfce_dom0-vm-gui-api (mean:0.039): 0.47
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:5.386): 64.63 🔻 ( previous job: 59.22, degradation: 109.14%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-0-api (mean:3.623): 43.48 🔻 ( previous job: 43.23, degradation: 100.56%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.604): 43.25 🔻 ( previous job: 42.67, degradation: 101.38%)
  • whonix-workstation-18_dom0-dispvm-preload-2-gui-api (mean:6.536): 78.43 🔻 ( previous job: 72.05, degradation: 108.86%)
  • whonix-workstation-18_dom0-dispvm-preload-4-gui-api (mean:4.764): 57.16 🔻 ( previous job: 52.81, degradation: 108.24%)
  • whonix-workstation-18_dom0-dispvm-preload-6-gui-api (mean:4.408): 52.90 🔻 ( previous job: 50.72, degradation: 104.29%)
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.044): 0.53 🟢 ( previous job: 0.56, improvement: 95.14%)
  • debian-13-xfce_exec: 8.48 🔻 ( previous job: 7.85, degradation: 107.99%)
  • debian-13-xfce_exec-root: 27.45 🔻 ( previous job: 26.74, degradation: 102.65%)
  • debian-13-xfce_socket-root: 9.29 🔻 ( previous job: 9.13, degradation: 101.83%)
  • debian-13-xfce_exec-data-simplex: 61.97 🟢 ( previous job: 63.05, improvement: 98.28%)
  • debian-13-xfce_exec-data-duplex: 68.26 🔻 ( previous job: 62.45, degradation: 109.30%)
  • debian-13-xfce_exec-data-duplex-root: 84.42 🔻 ( previous job: 78.04, degradation: 108.17%)
  • debian-13-xfce_socket-data-duplex: 86.34 🔻 ( previous job: 85.67, degradation: 100.79%)
  • fedora-44-xfce_exec: 9.25
  • fedora-44-xfce_exec-root: 70.39
  • fedora-44-xfce_socket: 8.73
  • fedora-44-xfce_socket-root: 8.55
  • fedora-44-xfce_exec-data-duplex: 71.92
  • fedora-44-xfce_exec-data-duplex-root: 110.33
  • fedora-44-xfce_socket-data-duplex: 83.13
  • whonix-gateway-18_socket: 8.94 🔻 ( previous job: 8.63, degradation: 103.54%)
  • whonix-gateway-18_socket-root: 8.36 🟢 ( previous job: 8.37, improvement: 99.88%)
  • whonix-gateway-18_exec-data-simplex: 67.05 🔻 ( previous job: 62.50, degradation: 107.27%)
  • whonix-gateway-18_exec-data-duplex: 67.87 🟢 ( previous job: 68.01, improvement: 99.79%)
  • whonix-gateway-18_exec-data-duplex-root: 144.95 🔻 ( previous job: 137.28, degradation: 105.59%)
  • whonix-workstation-18_exec: 8.53 🔻 ( previous job: 8.14, degradation: 104.88%)
  • whonix-workstation-18_socket-root: 9.46 🔻 ( previous job: 8.87, degradation: 106.63%)
  • whonix-workstation-18_exec-data-simplex: 67.55 🔻 ( previous job: 66.36, degradation: 101.80%)
  • whonix-workstation-18_exec-data-duplex: 67.59 🔻 ( previous job: 65.56, degradation: 103.11%)
  • whonix-workstation-18_socket-data-duplex: 89.67 🟢 ( previous job: 92.97, improvement: 96.44%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 497663.00 🟢 ( previous job: 388793.00, improvement: 128.00%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 164197.00 🟢 ( previous job: 119690.00, improvement: 137.19%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 436542.00 🟢 ( previous job: 245223.00, improvement: 178.02%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 100376.00 🟢 ( previous job: 13948.00, improvement: 719.64%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 8230.00 🟢 ( previous job: 6899.00, improvement: 119.29%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 414129.00 🔻 ( previous job: 429040.00, degradation: 96.52%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 358732.00 🟢 ( previous job: 257066.00, improvement: 139.55%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 448876.00 🟢 ( previous job: 446202.00, improvement: 100.60%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 188766.00 🔻 ( previous job: 201978.00, degradation: 93.46%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 10198.00 🔻 ( previous job: 10623.00, degradation: 96.00%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 8307.00 🟢 ( previous job: 8179.00, improvement: 101.56%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 5111.00 🟢 ( previous job: 4404.00, improvement: 116.05%)
  • fedora-44-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 248301.00
  • fedora-44-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 142646.00
  • fedora-44-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 324134.00
  • fedora-44-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 50427.00
  • fedora-44-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 81133.00
  • fedora-44-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2355.00
  • fedora-44-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8359.00
  • fedora-44-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 722.00
  • fedora-44-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 350694.00
  • fedora-44-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 135805.00
  • fedora-44-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 218407.00
  • fedora-44-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 57550.00
  • fedora-44-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 80868.00
  • fedora-44-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 1575.00
  • fedora-44-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 7718.00
  • fedora-44-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 876.00
  • fedora-44-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 324034.00
  • fedora-44-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 131932.00
  • fedora-44-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 288307.00
  • fedora-44-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 81470.00
  • fedora-44-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 55007.00
  • fedora-44-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 4111.00
  • fedora-44-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8671.00
  • fedora-44-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 987.00

@marmarek

marmarek commented May 7, 2026

Copy link
Copy Markdown
Member

I have some doubts about safety of this - if a qube leaves device in a weird state that would try to attack sys-usb. Here, the hope is device reset (like, re-plug) would restore it to a good state, but before that it would remain attached to usbip driver (that does nothing if device is not attached to any qube). But that's really a wishful thinking, no proof of that really helping. And device with persistent memory (like updateable firmware) could still perform an attack like this. And maybe even a compromised device could simulate re-plug event itself (to get attached to the default driver).
What do you think?
@HW42 maybe you have some opinion?

@piotrbartman

Copy link
Copy Markdown
Member Author

I see a problem. Yes, it's some attack surface on sys-usb. In such a case, however, we need to specify what exactly the user should expect. Currently, we have:

USB stick plugged in -> partition exposed from sys-usb
USB stick attach to VM1 -> partition exposed from VM1
USB stick detach -> no partition exposed (confusion)
USB stick attach to VM2 -> partition exposed from VM2 (more confusion)
USB stick detach -> no partition exposed

VM2 is less protected than sys-usb.

I think we should choose one of the following:
(a) it should not be possible to connect the device to VM2 without hard reset, or
(b) it should be possible to expose the partition from sys-usb without a hard reset.

@marmarek

Copy link
Copy Markdown
Member

I have two ideas of a middle ground solution:

  • reset the device explicitly on detach (we have usb-reset script already)
  • reattach only to popular drivers, like usb-storage, or uvcvideo

The second one is mostly heuristic, based on assumption that popular drivers are better reviewed/tested and more resilient against malicious hardware. But maybe first one is good enough already? (still depends on how much device cooperates, but all of this has this caveat...)

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.

4 participants