Skip to content

Memoize API methods - #849

Merged
marmarek merged 3 commits into
QubesOS:mainfrom
ben-grande:cache-methods
Aug 2, 2026
Merged

Memoize API methods#849
marmarek merged 3 commits into
QubesOS:mainfrom
ben-grande:cache-methods

Conversation

@ben-grande

Copy link
Copy Markdown
Contributor

Prior to this change, executing qubes-prefs requests two API methods, and took this much time to "list_methods" (format: CALL -> SECS):

0 -> 0.000520
0 -> 0.000404
1 -> 0.000237
1 -> 0.000183
2 -> 0.000468
2 -> 0.000199
3 -> 0.000277
3 -> 0.000207

With this change:

0 -> 0.000194
0 -> 0.000133
1 -> 0.000007
1 -> 0.000006
2 -> 0.000004
2 -> 0.000003
3 -> 0.000007
3 -> 0.000004

Suggested-by: Demi Marie Obenour demiobenour@gmail.com
For: QubesOS/qubes-issues#10775

Prior to this change, executing qubes-prefs requests two API methods, and took
this much time to "list_methods" (format: CALL -> SECS):

0 -> 0.000520
0 -> 0.000404
1 -> 0.000237
1 -> 0.000183
2 -> 0.000468
2 -> 0.000199
3 -> 0.000277
3 -> 0.000207

With this change:

0 -> 0.000194
0 -> 0.000133
1 -> 0.000007
1 -> 0.000006
2 -> 0.000004
2 -> 0.000003
3 -> 0.000007
3 -> 0.000004

Suggested-by: Demi Marie Obenour <demiobenour@gmail.com>
For: QubesOS/qubes-issues#10775
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.71429% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.32%. Comparing base (9fa3b63) to head (82bcfaf).
⚠️ Report is 25 commits behind head on main.

Files with missing lines Patch % Lines
qubes/api/__init__.py 85.71% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #849      +/-   ##
==========================================
- Coverage   70.37%   70.32%   -0.06%     
==========================================
  Files          61       61              
  Lines       14179    14164      -15     
==========================================
- Hits         9979     9961      -18     
- Misses       4200     4203       +3     
Flag Coverage Δ
unittests 70.32% <85.71%> (-0.06%) ⬇️

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

☔ View full report in Codecov by Harness.
📢 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.

Comment thread qubes/api/__init__.py Outdated
By decoupling the listing method from the candidate selection, we lower
time to get candidate from uncached method from 0.000300 to 0.000050.
@ben-grande

Copy link
Copy Markdown
Contributor Author

If list_all_methods returns a dict indexed by mname:

all_methods[mname].append((func, endpoint))

The list_methods would be much faster looping through this small loop.

Drop time to list uncached method from 0.000050 to 0.000010.

0 -> 0.000007
ProtocolError("no such method: 'a'")
1 -> 0.000017
ProtocolError("no such method: 'b'")
2 -> 0.000007
ProtocolError("no such method: 'c'")
3 -> 0.000014
ProtocolError("no such method: 'd'")
@ben-grande

Copy link
Copy Markdown
Contributor Author

Qubesd startup makes 200 calls, the loading of methods took 23.6ms and now it takes 0.5ms.

@qubesos-bot

qubesos-bot commented Jul 31, 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=2026080104-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_pvgrub_salt_storage

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

  • system_tests_network_updates

    • TC_00_Dom0Upgrade_whonix-gateway-18: test_005_update_flag_clear (error)
      subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...
  • system_tests_basic_vm_qrexec_gui_zfs

  • system_tests_guivm_gpu_gui_interactive@hw13

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

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

  • system_tests_audio@hw1

Failed tests

12 failures
  • system_tests_pvgrub_salt_storage

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

    • [unstable] 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-44-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_extra

  • system_tests_network_updates

    • [unstable] TC_00_Dom0Upgrade_whonix-gateway-18: test_000_update (failure + timed out)
      Error: Failed to download metadata for repo 'test': Cannot download...

    • [unstable] TC_00_Dom0Upgrade_whonix-gateway-18: test_000_update_salt (failure)
      ?[0;31mDuration: 152960.824 ms?[0;0m... ?[0;31m Changes: ?[0;0m

    • TC_00_Dom0Upgrade_whonix-gateway-18: test_005_update_flag_clear (error)
      subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...

  • system_tests_basic_vm_qrexec_gui_zfs

  • system_tests_audio

    • [unstable] TC_20_AudioVM_Pulse_whonix-workstation-18: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: too short audio, expected 10s, got 7.76829931972789...
  • system_tests_guivm_gpu_gui_interactive@hw13

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

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

  • system_tests_audio@hw1

Fixed failures

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

26 fixed
  • 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_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: 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_whonix@hw1

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

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

  • 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

  • system_tests_whonix

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

Unstable tests

Details
  • system_tests_gui_tools@hw7

    qui_widgets_update/ (1/5 times with errors)
    qui_widgets_update/ (1/5 times with errors)
    qui_widgets_update/Failed (1/5 times with errors)
    • job 189375 # Test died: no candidate needle with tag(s) 'qubes-update-finish' ...
  • system_tests_gui_tools

    qui_widgets_update/ (1/5 times with errors)
    qui_widgets_update/ (1/5 times with errors)
    qui_widgets_update/Failed (1/5 times with errors)
    • job 189375 # Test died: no candidate needle with tag(s) 'qubes-update-finish' ...
  • system_tests_network

    system_tests/Fail (2/5 times with errors)
    • job 188964 Tests qubes.tests.integ.network failed (exit code 1), details repor...
    • job 190295 Tests qubes.tests.integ.network failed (exit code 1), details repor...
    system_tests/Failed (2/5 times with errors)
    • job 188964 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 190295 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    VmNetworking_debian-13-xfce/test_001_simple_networking_paused_from_none_to_existent (1/5 times with errors)
    • job 190295 raise TimeoutError from exc_val... TimeoutError
    VmNetworking_debian-13-xfce/test_110_dynamic_attach (2/5 times with errors)
    • job 188964 ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 125 != 0
    • job 190295 raise TimeoutError from exc_val... TimeoutError
    VmNetworking_fedora-43-xfce/test_114_reattach_after_provider_crash (1/5 times with errors)
    • job 188964 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_pvgrub_salt_storage

    system_tests/Fail (1/5 times with errors)
    • job 188967 Tests qubes.tests.integ.grub failed (exit code 1), details reported...
    system_tests/Fail (1/5 times with errors)
    • job 188967 Tests qubes.tests.integ.salt failed (exit code 1), details reported...
    system_tests/Fail (1/5 times with errors)
    • job 188967 Tests qubes.tests.integ.storage failed (exit code 1), details repor...
    system_tests/Failed (1/5 times with errors)
    • job 190298 # Test died: command 'curl --form upload=@nose2-junit.xml --form up...
    system_tests/Failed (1/5 times with errors)
    • job 188967 # 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 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-43-xfce/test_000_standalone_vm (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    StorageReflinkOnExt4/test_000_volatile (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_10_VMSalt_fedora-43-xfce/test_001_multi_state_highstate (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_001_standalone_vm_dracut (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_fedora-43-xfce/test_010_template_based_vm (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_41_HVMGrub_debian-13-xfce/test_011_template_based_vm_dracut (1/5 times with errors)
    • job 188967 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_extra

    system_tests/Fail (1/5 times with errors)
    • job 188661 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (1/5 times with errors)
    • job 188661 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_01_InputProxyExclude_debian-13-xfce/test_000_qemu_tablet (1/5 times with errors)
    • job 188661 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    TC_01_InputProxyExclude_fedora-43-xfce/test_000_qemu_tablet (1/5 times with errors)
    • job 188661 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 (1/5 times with errors)
    • job 188661 AssertionError: DispVM not cleaned up 20s after cancel: ['disp8125']
    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_usbproxy

    system_tests/Fail (1/5 times with errors)
    • job 188934 Tests qubes.tests.extra failed (exit code 1), details reported sepa...
    system_tests/Failed (1/5 times with errors)
    • job 188934 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_USBProxy_core3_debian-13-xfce/test_090_attach_stubdom (1/5 times with errors)
    • job 188934 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 188934 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_qrexec

    system_tests/Fail (2/5 times with errors)
    • job 190299 Tests qubes.tests.integ.qrexec failed (exit code 1), details report...
    • job 190314 Tests qubes.tests.integ.qrexec failed (exit code 1), details report...
    system_tests/Failed (2/5 times with errors)
    • job 190299 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 190314 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_00_Qrexec_whonix-workstation-18/test_095_qrexec_service_socket_vm (2/5 times with errors)
    • job 190299 AssertionError: waiting for /etc/qubes-rpc/test.Socket in VM timed out
    • job 190314 AssertionError: waiting for /etc/qubes-rpc/test.Socket in VM timed out
  • system_tests_network_ipv6

    system_tests/Fail (4/5 times with errors)
    • job 188666 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 188965 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 189378 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    • job 190296 Tests qubes.tests.integ.network_ipv6 failed (exit code 1), details ...
    system_tests/Failed (4/5 times with errors)
    • job 188666 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 188965 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 189378 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 190296 # 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 189378 subprocess.CalledProcessError: Command 'qubes.WaitForNetworkUplink'...
    VmIPv6Networking_debian-13-xfce/test_001_simple_networking_paused_restart_netvm (1/5 times with errors)
    • job 190296 AssertionError: Timeout while waiting for VM test-inst-netvm1 shutdown
    VmIPv6Networking_fedora-43-xfce/test_030_firewallvm_firewall (1/5 times with errors)
    • job 188965 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    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_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-44-xfce/test_510_ipv6_simple_proxyvm (1/5 times with errors)
    • job 190296 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_network_updates

    TC_00_Dom0Upgrade_whonix-gateway-18/test_000_update (1/5 times with errors)
    • job 189379 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 190297 ?[0;31mDuration: 140907.985 ms?[0;0m... ?[0;31m Changes: ?[0;0m
    • job 190312 ?[0;31mDuration: 135117.105 ms?[0;0m... ?[0;31m Changes: ?[0;0m
    TC_00_Dom0Upgrade_whonix-gateway-18/test_001_update_check (4/5 times with errors)
    • job 188966 subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...
    • job 189164 subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...
    • job 190297 ^... AssertionError: '' is not true
    • job 190312 ^... AssertionError: '' is not true
    TC_00_Dom0Upgrade_whonix-gateway-18/test_006_update_flag_clear (1/5 times with errors)
    • job 188966 Error: Failed to download metadata for repo 'test': Cannot download...
    TC_00_Dom0Upgrade_whonix-gateway-18/test_030_install_unsigned (1/5 times with errors)
    • job 189379 subprocess.CalledProcessError: Command 'timeout=120; while ! tor-ci...
    system_tests/wait_serial (1/5 times with errors)
    • job 188966 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • system_tests_kde_gui_interactive

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

    system_tests/Fail (1/5 times with errors)
    • job 189155 Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...
    switch_pool/Failed (1/5 times with errors)
    • job 189183 # Test died: command 'qvm-start --skip-if-running sys-firewall sys-...
    system_tests/Failed (1/5 times with errors)
    • job 189155 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_NonAudio_whonix-gateway-18-pool/test_012_qubes_desktop_run (1/5 times with errors)
    • job 189155 raise TimeoutError from exc_val... TimeoutError
  • system_tests_audio

    system_tests/Fail (2/5 times with errors)
    • job 188639 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    • job 189136 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    system_tests/Failed (2/5 times with errors)
    • job 188639 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 189136 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    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 (1/5 times with errors)
    • job 188639 AssertionError: too short audio, expected 10s, got 6.83272108843537...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_251_audio_playback_audiovm_pipewire_late_start (1/5 times with errors)
    • job 189136 AssertionError: too short audio, expected 10s, got 9.09505668934240...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (1/5 times with errors)
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_basic_vm_qrexec_gui_ext4

    system_tests/Fail (1/5 times with errors)
    • job 188955 Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...
    system_tests/Failed (1/5 times with errors)
    • job 188955 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_NonAudio_debian-13-xfce-pool/test_500_gui_agent_env_sync (1/5 times with errors)
    • job 188955 qubes.exc.QubesVMShutdownTimeoutError: Domain shutdown timed out: '...
    TC_20_NonAudio_fedora-43-xfce-pool/test_500_gui_agent_env_sync (1/5 times with errors)
    • job 188955 OSError: Volume /var/lib/qubes-pool/appvms/test-inst-envsync/privat...
    TC_20_NonAudio_whonix-gateway-18-pool/test_500_gui_agent_env_sync (1/5 times with errors)
    • job 188955 OSError: Volume /var/lib/qubes-pool/appvms/test-inst-envsync/privat...
    TC_20_NonAudio_whonix-workstation-18-pool/test_500_gui_agent_env_sync (1/5 times with errors)
    • job 188955 OSError: Volume /var/lib/qubes-pool/appvms/test-inst-envsync/privat...
  • system_tests_basic_vm_qrexec_gui_xfs

    startup/ (1/5 times with errors)
    system_tests/Fail (1/5 times with errors)
    • job 188956 Tests qubes.tests.integ.vm_qrexec_gui failed (exit code 1), details...
    startup/Failed (1/5 times with errors)
    • job 189154 # Test died: no candidate needle with tag(s) 'luks-prompt, login-pr...
    system_tests/Failed (1/5 times with errors)
    • job 188956 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    TC_20_NonAudio_fedora-43-xfce-pool/test_101_qrexec_filecopy_with_autostart (1/5 times with errors)
    • job 188956 AssertionError: qvm-copy-to-vm failed: b'In order to avoid typing t...
    TC_20_NonAudio_fedora-43-xfce-pool/test_400_long_window_title (1/5 times with errors)
    • job 188956 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
    startup/wait_serial (1/5 times with errors)
    • job 189154 # wait_serial expected: qr/login:\s*$|root@.*#\s*$/ui...
    startup/wait_serial (1/5 times with errors)
    • job 189154 # wait_serial expected: qr/PS1="root# "/u...
    startup/wait_serial (1/5 times with errors)
    startup/wait_serial (1/5 times with errors)
    • job 189154 # wait_serial expected: "export TERM=dumb; stty cols 2048 rows 25; ...
  • system_tests_whonix@hw1

    whonixcheck/Failed (2/5 times with errors)
    • job 188935 # Test died: command 'qvm-run -ap whonix-gateway-18 'LC_ALL=C whon...
    • job 189348 # Test died: command 'qvm-run -ap whonix-gateway-18 'LC_ALL=C whon...
    whonixcheck/fail (2/5 times with errors)
    whonixcheck/wait_serial (2/5 times with errors)
    • job 188935 # Command: qvm-run -ap whonix-gateway-18 'LC_ALL=C whonixcheck --v...
    • job 189348 # Command: qvm-run -ap whonix-gateway-18 'LC_ALL=C whonixcheck --v...
    whonixcheck/wait_serial (1/5 times with errors)
    • job 189348 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....
  • 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_audio@hw1

    system_tests/Fail (2/5 times with errors)
    • job 188639 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    • job 189136 Tests qubes.tests.integ.audio failed (exit code 1), details reporte...
    system_tests/Failed (2/5 times with errors)
    • job 188639 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    • job 189136 # Test died: Some tests failed at qubesos/tests/system_tests.pm lin...
    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 (1/5 times with errors)
    • job 188639 AssertionError: too short audio, expected 10s, got 6.83272108843537...
    TC_20_AudioVM_PipeWire_whonix-workstation-18/test_251_audio_playback_audiovm_pipewire_late_start (1/5 times with errors)
    • job 189136 AssertionError: too short audio, expected 10s, got 9.09505668934240...
    TC_20_AudioVM_Pulse_fedora-43-xfce/test_252_audio_playback_audiovm_switch_hvm (1/5 times with errors)
    • job 188639 qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...
  • system_tests_splitgpg

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

    whonixcheck/Failed (2/5 times with errors)
    • job 188935 # Test died: command 'qvm-run -ap whonix-gateway-18 'LC_ALL=C whon...
    • job 189348 # Test died: command 'qvm-run -ap whonix-gateway-18 'LC_ALL=C whon...
    whonixcheck/fail (2/5 times with errors)
    whonixcheck/wait_serial (2/5 times with errors)
    • job 188935 # Command: qvm-run -ap whonix-gateway-18 'LC_ALL=C whonixcheck --v...
    • job 189348 # Command: qvm-run -ap whonix-gateway-18 'LC_ALL=C whonixcheck --v...
    whonixcheck/wait_serial (1/5 times with errors)
    • job 189348 # Command: curl --form upload=@/var/log/libvirt/libxl/libxl-driver....

Performance Tests

Performance degradation:

28 performance degradations
  • debian-13-xfce_exec: 8.71 🔻 ( previous job: 7.85, degradation: 110.90%)
  • debian-13-xfce_socket: 9.33 🔻 ( previous job: 8.37, degradation: 111.50%)
  • debian-13-xfce_exec-data-duplex: 70.27 🔻 ( previous job: 62.45, degradation: 112.53%)
  • debian-13-xfce_exec-data-duplex-root: 85.91 🔻 ( previous job: 78.04, degradation: 110.08%)
  • whonix-gateway-18_exec-root: 156.63 🔻 ( previous job: 126.14, degradation: 124.17%)
  • whonix-gateway-18_socket: 9.66 🔻 ( previous job: 8.63, degradation: 111.90%)
  • whonix-gateway-18_socket-root: 9.36 🔻 ( previous job: 8.37, degradation: 111.84%)
  • whonix-gateway-18_socket-data-duplex: 106.32 🔻 ( previous job: 90.03, degradation: 118.09%)
  • whonix-workstation-18_exec-root: 164.82 🔻 ( previous job: 144.02, degradation: 114.44%)
  • whonix-workstation-18_socket: 9.24 🔻 ( previous job: 7.66, degradation: 120.59%)
  • whonix-workstation-18_exec-data-duplex-root: 150.23 🔻 ( previous job: 130.67, degradation: 114.97%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 243515.00 🔻 ( previous job: 429040.00, degradation: 56.76%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 156396.00 🔻 ( previous job: 257066.00, degradation: 60.84%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 7817.00 🔻 ( previous job: 10623.00, degradation: 73.59%)
  • debian-13-xfce_dom0-dispvm-gui-api (mean:8.839): 106.07 🔻 ( previous job: 93.50, degradation: 113.45%)
  • debian-13-xfce_dom0-dispvm-preload-2-api (mean:3.664): 43.97 🔻 ( previous job: 37.79, degradation: 116.35%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-0-api (mean:3.278): 39.34 🔻 ( previous job: 34.29, degradation: 114.71%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:3.535): 42.42 🔻 ( previous job: 38.52, degradation: 110.13%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:2.798): 33.58 🔻 ( previous job: 28.74, degradation: 116.82%)
  • debian-13-xfce_dom0-dispvm-preload-2-gui-api (mean:5.084): 61.01 🔻 ( previous job: 53.65, degradation: 113.72%)
  • debian-13-xfce_dom0-dispvm-preload-4-gui-api (mean:4.111): 49.33 🔻 ( previous job: 44.40, degradation: 111.11%)
  • whonix-workstation-18_dom0-dispvm-api (mean:9.727): 116.73 🔻 ( previous job: 97.14, degradation: 120.17%)
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:12.026): 144.31 🔻 ( previous job: 121.86, degradation: 118.43%)
  • whonix-workstation-18_dom0-dispvm-preload-2-api (mean:4.614): 55.36 🔻 ( previous job: 48.39, degradation: 114.40%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-0-api (mean:4.644): 55.73 🔻 ( previous job: 48.26, degradation: 115.47%)
  • whonix-workstation-18_dom0-dispvm-preload-4-api (mean:3.768): 45.22 🔻 ( previous job: 38.29, degradation: 118.10%)
  • whonix-workstation-18_dom0-vm-api (mean:0.045): 0.54 🔻 ( previous job: 0.43, degradation: 124.71%)
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.079): 0.95 🔻 ( previous job: 0.56, degradation: 171.22%)

Remaining performance tests:

83 tests
  • debian-13-xfce_exec-root: 28.15 🔻 ( previous job: 26.74, degradation: 105.25%)
  • debian-13-xfce_socket-root: 9.13 🔻 ( previous job: 9.13, degradation: 100.08%)
  • debian-13-xfce_exec-data-simplex: 62.17 🟢 ( previous job: 63.05, improvement: 98.61%)
  • debian-13-xfce_socket-data-duplex: 88.34 🔻 ( previous job: 85.67, degradation: 103.12%)
  • fedora-44-xfce_exec: 9.48
  • fedora-44-xfce_exec-root: 73.24
  • fedora-44-xfce_socket: 9.63
  • fedora-44-xfce_socket-root: 9.71
  • fedora-44-xfce_exec-data-simplex: 65.94
  • fedora-44-xfce_exec-data-duplex: 68.46
  • fedora-44-xfce_exec-data-duplex-root: 113.87
  • fedora-44-xfce_socket-data-duplex: 83.80
  • whonix-gateway-18_exec: 7.61 🟢 ( previous job: 8.01, improvement: 95.00%)
  • whonix-gateway-18_exec-data-simplex: 68.20 🔻 ( previous job: 62.50, degradation: 109.11%)
  • whonix-gateway-18_exec-data-duplex: 68.62 🔻 ( previous job: 68.01, degradation: 100.90%)
  • whonix-gateway-18_exec-data-duplex-root: 147.59 🔻 ( previous job: 137.28, degradation: 107.51%)
  • whonix-workstation-18_exec: 8.09 🟢 ( previous job: 8.14, improvement: 99.46%)
  • whonix-workstation-18_socket-root: 8.61 🟢 ( previous job: 8.87, improvement: 97.12%)
  • whonix-workstation-18_exec-data-simplex: 66.93 🔻 ( previous job: 66.36, degradation: 100.87%)
  • whonix-workstation-18_exec-data-duplex: 67.11 🔻 ( previous job: 65.56, degradation: 102.36%)
  • whonix-workstation-18_socket-data-duplex: 88.93 🟢 ( previous job: 92.97, improvement: 95.65%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 496484.00 🟢 ( previous job: 388793.00, improvement: 127.70%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 214345.00 🟢 ( previous job: 119690.00, improvement: 179.08%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 430980.00 🟢 ( previous job: 245223.00, improvement: 175.75%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 202223.00 🟢 ( previous job: 199974.00, improvement: 101.12%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 100822.00 🟢 ( previous job: 13948.00, improvement: 722.84%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 6241.00 🔻 ( previous job: 6899.00, degradation: 90.46%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8291.00 🔻 ( previous job: 8963.00, degradation: 92.50%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 4814.00 🔻 ( previous job: 5055.00, degradation: 95.23%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 425904.00 🔻 ( previous job: 446202.00, degradation: 95.45%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 196789.00 🔻 ( previous job: 201978.00, degradation: 97.43%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 99337.00 🔻 ( previous job: 102155.00, degradation: 97.24%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7820.00 🔻 ( previous job: 8179.00, degradation: 95.61%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 4056.00 🔻 ( previous job: 4404.00, degradation: 92.10%)
  • fedora-44-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 335759.00
  • fedora-44-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 214476.00
  • fedora-44-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 343457.00
  • fedora-44-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 37994.00
  • fedora-44-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 85060.00
  • fedora-44-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2480.00
  • fedora-44-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 9652.00
  • fedora-44-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 826.00
  • fedora-44-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 372628.00
  • fedora-44-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 135391.00
  • fedora-44-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 318909.00
  • fedora-44-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 28948.00
  • fedora-44-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 83640.00
  • fedora-44-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 3570.00
  • fedora-44-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 11069.00
  • fedora-44-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 572.00
  • fedora-44-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 373957.00
  • fedora-44-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 69399.00
  • fedora-44-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 296459.00
  • fedora-44-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 17249.00
  • fedora-44-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 63430.00
  • fedora-44-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2071.00
  • fedora-44-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8227.00
  • fedora-44-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1040.00
  • debian-13-xfce_dom0-dispvm-api (mean:6.498): 77.98 🔻 ( previous job: 74.50, degradation: 104.68%)
  • debian-13-xfce_dom0-dispvm-preload-4-api (mean:2.639): 31.67 🔻 ( previous job: 30.73, degradation: 103.03%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-0-api (mean:2.582): 30.98 🔻 ( previous job: 29.50, degradation: 105.03%)
  • debian-13-xfce_dom0-dispvm-preload-6-gui-api (mean:3.416): 41.00 🟢 ( previous job: 41.47, improvement: 98.87%)
  • debian-13-xfce_dom0-vm-api (mean:0.024): 0.29 🟢 ( previous job: 0.62, improvement: 46.77%)
  • debian-13-xfce_dom0-vm-gui-api (mean:0.032): 0.39 🟢 ( previous job: 0.47, improvement: 82.80%)
  • fedora-44-xfce_dom0-dispvm-api (mean:8.684): 104.21
  • fedora-44-xfce_dom0-dispvm-gui-api (mean:10.641): 127.70
  • fedora-44-xfce_dom0-dispvm-preload-2-api (mean:4.032): 48.38
  • fedora-44-xfce_dom0-dispvm-preload-2-delay-0-api (mean:4.033): 48.40
  • fedora-44-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:4.291): 51.49
  • fedora-44-xfce_dom0-dispvm-preload-4-api (mean:2.998): 35.98
  • fedora-44-xfce_dom0-dispvm-preload-4-delay-0-api (mean:3.087): 37.04
  • fedora-44-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.111): 37.33
  • fedora-44-xfce_dom0-dispvm-preload-2-gui-api (mean:5.682): 68.18
  • fedora-44-xfce_dom0-dispvm-preload-4-gui-api (mean:4.569): 54.83
  • fedora-44-xfce_dom0-dispvm-preload-6-gui-api (mean:3.815): 45.78
  • fedora-44-xfce_dom0-vm-api (mean:0.031): 0.37
  • fedora-44-xfce_dom0-vm-gui-api (mean:0.044): 0.53
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:4.881): 58.57 🟢 ( previous job: 59.22, improvement: 98.91%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-0-api (mean:3.503): 42.04 🟢 ( previous job: 43.23, improvement: 97.24%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.811): 45.73 🔻 ( previous job: 42.67, degradation: 107.18%)
  • whonix-workstation-18_dom0-dispvm-preload-2-gui-api (mean:6.422): 77.06 🔻 ( previous job: 72.05, degradation: 106.96%)
  • whonix-workstation-18_dom0-dispvm-preload-4-gui-api (mean:4.644): 55.73 🔻 ( previous job: 52.81, degradation: 105.52%)
  • whonix-workstation-18_dom0-dispvm-preload-6-gui-api (mean:4.367): 52.40 🔻 ( previous job: 50.72, degradation: 103.32%)

@marmarek
marmarek merged commit 35d28d3 into QubesOS:main Aug 2, 2026
4 of 6 checks passed
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