Skip to content

Use admin.vm.List method to get VM class#439

Merged
marmarek merged 1 commit intoQubesOS:mainfrom
marmarek:klass-list
Mar 2, 2026
Merged

Use admin.vm.List method to get VM class#439
marmarek merged 1 commit intoQubesOS:mainfrom
marmarek:klass-list

Conversation

@marmarek
Copy link
Member

@marmarek marmarek commented Mar 1, 2026

Normally, VM class is cached when getting list of all (accessible)
VMs. This means the admin.vm.property.Get+klass is normally not used.
But if there is a case where VM object is created without listing all
VMs first, it will not get the 'klass' property set. Apparently
preloaded disposables trigger this case in audiovm.
The thing is, admin.vm.property.Get+klass is mostly redundant with
admin.vm.List (directed at a specific qube), since admin.vm.List
contains that information already - so it doesn't make much sense to
force everybody to add both to the policy.

Fix this by using admin.vm.List to get the VM class.

Fixes QubesOS/qubes-issues#10717

Normally, VM class is cached when getting list of all (accessible)
VMs. This means the admin.vm.property.Get+klass is normally not used.
But if there is a case where VM object is created without listing all
VMs first, it will not get the 'klass' property set. Apparently
preloaded disposables trigger this case in audiovm.
The thing is, admin.vm.property.Get+klass is mostly redundant with
admin.vm.List (directed at a specific qube), since admin.vm.List
contains that information already - so it doesn't make much sense to
force everybody to add both to the policy.

Fix this by using admin.vm.List to get the VM class.

Fixes QubesOS/qubes-issues#10717
@codecov
Copy link

codecov bot commented Mar 1, 2026

Codecov Report

❌ Patch coverage is 80.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.18%. Comparing base (aade160) to head (84edd42).
⚠️ Report is 5 commits behind head on main.

Files with missing lines Patch % Lines
qubesadmin/vm/__init__.py 80.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #439      +/-   ##
==========================================
+ Coverage   76.17%   76.18%   +0.01%     
==========================================
  Files          53       53              
  Lines        9312     9321       +9     
==========================================
+ Hits         7093     7101       +8     
- Misses       2219     2220       +1     

☔ 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.

@qubesos-bot
Copy link

OpenQA test summary

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

Test run included the following:

Upload failures

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

    • system_tests: Failed (test died + timed out)
      # Test died: command 'testfunc qubes.tests.extra' timed out at qube...

New failures, excluding unstable

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

  • system_tests_network

  • system_tests_pvgrub_salt_storage

  • system_tests_usbproxy

  • system_tests_network_ipv6

  • system_tests_kde_gui_interactive

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

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

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

  • system_tests_audio

    • TC_20_AudioVM_Pulse_whonix-workstation-18: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: too short audio, expected 10s, got 7.13712018140589...
  • system_tests_qwt_win10_seamless@hw13

  • system_tests_qwt_win11@hw13

    • windows_install: unnamed test (unknown)
    • windows_install: Failed (test died)
      # Test died: no candidate needle with tag(s) 'xterm' matched...
  • system_tests_audio@hw1

  • system_tests_whonix@hw1

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

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

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

  • system_tests_qwt_win10@hw13

Failed tests

26 failures
  • system_tests_whonix

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

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

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

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

  • system_tests_network

  • system_tests_pvgrub_salt_storage

  • system_tests_gui_interactive

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

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

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

  • system_tests_usbproxy

  • system_tests_network_ipv6

  • system_tests_kde_gui_interactive

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

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

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

  • system_tests_audio

    • TC_20_AudioVM_Pulse_whonix-workstation-18: test_225_audio_rec_unmuted_hvm (failure)
      AssertionError: too short audio, expected 10s, got 7.13712018140589...
  • 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_qwt_win11@hw13

    • windows_install: unnamed test (unknown)
    • windows_install: Failed (test died)
      # Test died: no candidate needle with tag(s) 'xterm' matched...
  • system_tests_audio@hw1

  • system_tests_whonix@hw1

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

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

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

  • system_tests_qwt_win10@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Notepad' matc...

Fixed failures

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

25 fixed
  • system_tests_whonix

    • whonixcheck: wait_serial (wait serial expected)
      # wait_serial expected: qr/D8rIe-\d+-/...
  • system_tests_network

  • system_tests_pvgrub_salt_storage

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

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

  • system_tests_network_ipv6

  • system_tests_network_updates

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

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

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

  • system_tests_dispvm

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

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

    • TC_20_DispVM_whonix-workstation-18: test_015_preload_race_more (error)
      raise TimeoutError from exc_val... TimeoutError

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

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

  • system_tests_audio

  • system_tests_qwt_win10_seamless@hw13

  • system_tests_qwt_win11@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'personal-text-editor'...
  • system_tests_qwt_win10@hw13

Unstable tests

Details

Performance Tests

Performance degradation:

15 performance degradations
  • debian-13-xfce_exec: 8.47 🔻 ( previous job: 6.30, degradation: 134.47%)
  • whonix-workstation-18_socket-root: 10.38 🔻 ( previous job: 8.00, degradation: 129.67%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 337054.00 🔻 ( previous job: 415606.00, degradation: 81.10%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 16199.00 🔻 ( previous job: 104460.00, degradation: 15.51%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 8310.00 🔻 ( previous job: 10453.00, degradation: 79.50%)
  • fedora-42-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 529.00 🔻 ( previous job: 905.00, degradation: 58.45%)
  • fedora-42-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 278580.00 🔻 ( previous job: 338906.00, degradation: 82.20%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 73862.00 🔻 ( previous job: 89810.00, degradation: 82.24%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:4.47): 53.64 🔻 ( previous job: 47.01, degradation: 114.11%)
  • debian-13-xfce_dom0-dispvm-preload-4-api (mean:9.45): 113.40 🔻 ( previous job: 37.67, degradation: 300.99%)
  • debian-13-xfce_dom0-vm-api (mean:0.038): 0.46 🔻 ( previous job: 0.41, degradation: 111.86%)
  • fedora-42-xfce_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:4.706): 56.47 🔻 ( previous job: 50.22, degradation: 112.44%)
  • fedora-42-xfce_dom0-dispvm-preload-4-delay-0-api (mean:3.693): 44.32 🔻 ( previous job: 40.12, degradation: 110.46%)
  • whonix-workstation-18_dom0-dispvm-preload-2-api (mean:5.997): 71.97 🔻 ( previous job: 64.20, degradation: 112.10%)
  • whonix-workstation-18_dom0-vm-api (mean:0.041): 0.49 🔻 ( previous job: 0.42, degradation: 118.23%)

Remaining performance tests:

96 tests
  • debian-13-xfce_exec-root: 26.15 🟢 ( previous job: 27.04, improvement: 96.69%)
  • debian-13-xfce_socket: 8.92 🔻 ( previous job: 8.42, degradation: 105.89%)
  • debian-13-xfce_socket-root: 8.83 🔻 ( previous job: 8.42, degradation: 104.84%)
  • debian-13-xfce_exec-data-simplex: 62.86 🟢 ( previous job: 67.13, improvement: 93.63%)
  • debian-13-xfce_exec-data-duplex: 67.06 🟢 ( previous job: 70.17, improvement: 95.57%)
  • debian-13-xfce_exec-data-duplex-root: 72.72 🟢 ( previous job: 80.31, improvement: 90.55%)
  • debian-13-xfce_socket-data-duplex: 85.40 🟢 ( previous job: 134.11, improvement: 63.68%)
  • fedora-42-xfce_exec: 9.04 🟢 ( previous job: 9.13, improvement: 99.02%)
  • fedora-42-xfce_exec-root: 59.92 🟢 ( previous job: 60.02, improvement: 99.84%)
  • fedora-42-xfce_socket: 8.15 🟢 ( previous job: 8.19, improvement: 99.52%)
  • fedora-42-xfce_socket-root: 8.54 🟢 ( previous job: 8.70, improvement: 98.10%)
  • fedora-42-xfce_exec-data-simplex: 54.96 🟢 ( previous job: 68.14, improvement: 80.66%)
  • fedora-42-xfce_exec-data-duplex: 61.89 🟢 ( previous job: 68.13, improvement: 90.84%)
  • fedora-42-xfce_exec-data-duplex-root: 90.40 🟢 ( previous job: 93.21, improvement: 96.99%)
  • fedora-42-xfce_socket-data-duplex: 88.50 🟢 ( previous job: 138.56, improvement: 63.87%)
  • whonix-gateway-18_exec: 7.85 🔻 ( previous job: 7.35, degradation: 106.81%)
  • whonix-gateway-18_exec-root: 125.78 🟢 ( previous job: 131.64, improvement: 95.55%)
  • whonix-gateway-18_socket: 7.44 🔻 ( previous job: 7.40, degradation: 100.52%)
  • whonix-gateway-18_socket-root: 7.08 🟢 ( previous job: 7.65, improvement: 92.44%)
  • whonix-gateway-18_exec-data-simplex: 74.25 🔻 ( previous job: 72.83, degradation: 101.94%)
  • whonix-gateway-18_exec-data-duplex: 69.40 🟢 ( previous job: 75.39, improvement: 92.05%)
  • whonix-gateway-18_exec-data-duplex-root: 128.84 🟢 ( previous job: 152.93, improvement: 84.24%)
  • whonix-gateway-18_socket-data-duplex: 118.85 🟢 ( previous job: 146.64, improvement: 81.05%)
  • whonix-workstation-18_exec: 8.63 🔻 ( previous job: 8.13, degradation: 106.12%)
  • whonix-workstation-18_exec-root: 141.63 🔻 ( previous job: 139.53, degradation: 101.50%)
  • whonix-workstation-18_socket: 8.29 🟢 ( previous job: 8.51, improvement: 97.45%)
  • whonix-workstation-18_exec-data-simplex: 64.49 🟢 ( previous job: 67.80, improvement: 95.11%)
  • whonix-workstation-18_exec-data-duplex: 65.14 🟢 ( previous job: 73.26, improvement: 88.91%)
  • whonix-workstation-18_exec-data-duplex-root: 127.00 🟢 ( previous job: 146.76, improvement: 86.53%)
  • whonix-workstation-18_socket-data-duplex: 95.20 🟢 ( previous job: 138.51, improvement: 68.73%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 81399.00 🟢 ( previous job: 71899.00, improvement: 113.21%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 94132.00 🟢 ( previous job: 93351.00, improvement: 100.84%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 80959.00 🟢 ( previous job: 22755.00, improvement: 355.79%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 103019.00 🟢 ( previous job: 18745.00, improvement: 549.58%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 8983.00 🟢 ( previous job: 258.00, improvement: 3481.78%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 11099.00 🟢 ( previous job: 9986.00, improvement: 111.15%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 4027.00 🟢 ( previous job: 2205.00, improvement: 182.63%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 440393.00 🟢 ( previous job: 81191.00, improvement: 542.42%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 154727.00 🟢 ( previous job: 66870.00, improvement: 231.38%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 436724.00 🟢 ( previous job: 425213.00, improvement: 102.71%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 190326.00 🟢 ( previous job: 167196.00, improvement: 113.83%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 8458.00 🔻 ( previous job: 8763.00, degradation: 96.52%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 4372.00 🟢 ( previous job: 3931.00, improvement: 111.22%)
  • fedora-42-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 399762.00 🟢 ( previous job: 282711.00, improvement: 141.40%)
  • fedora-42-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 118271.00 🔻 ( previous job: 118833.00, degradation: 99.53%)
  • fedora-42-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 351753.00 🟢 ( previous job: 349641.00, improvement: 100.60%)
  • fedora-42-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 69702.00 🟢 ( previous job: 69093.00, improvement: 100.88%)
  • fedora-42-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 79670.00 🔻 ( previous job: 80558.00, degradation: 98.90%)
  • fedora-42-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2453.00 🟢 ( previous job: 1680.00, improvement: 146.01%)
  • fedora-42-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8328.00 🔻 ( previous job: 9096.00, degradation: 91.56%)
  • fedora-42-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 376508.00 🟢 ( previous job: 273565.00, improvement: 137.63%)
  • fedora-42-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 197841.00 🟢 ( previous job: 136438.00, improvement: 145.00%)
  • fedora-42-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 366378.00 🟢 ( previous job: 357875.00, improvement: 102.38%)
  • fedora-42-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 59640.00 🟢 ( previous job: 51291.00, improvement: 116.28%)
  • fedora-42-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 74799.00 🟢 ( previous job: 23101.00, improvement: 323.79%)
  • fedora-42-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 3152.00 🟢 ( previous job: 2605.00, improvement: 121.00%)
  • fedora-42-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 8483.00 🔻 ( previous job: 8753.00, degradation: 96.92%)
  • fedora-42-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 883.00 🟢 ( previous job: 719.00, improvement: 122.81%)
  • fedora-42-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 225016.00 🟢 ( previous job: 114705.00, improvement: 196.17%)
  • fedora-42-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 315931.00 🟢 ( previous job: 315931.00, improvement: 100.00%)
  • fedora-42-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 85197.00 🟢 ( previous job: 60295.00, improvement: 141.30%)
  • fedora-42-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2876.00 🟢 ( previous job: 2192.00, improvement: 131.20%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8701.00 🟢 ( previous job: 8251.00, improvement: 105.45%)
  • fedora-42-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1271.00 🔻 ( previous job: 1339.00, degradation: 94.92%)
  • debian-13-xfce_dom0-dispvm-api (mean:6.78): 81.36 🔻 ( previous job: 79.83, degradation: 101.92%)
  • debian-13-xfce_dom0-dispvm-gui-api (mean:7.654): 91.84 🟢 ( previous job: 92.49, improvement: 99.31%)
  • debian-13-xfce_dom0-dispvm-preload-2-api (mean:3.496): 41.95 🟢 ( previous job: 44.94, improvement: 93.34%)
  • debian-13-xfce_dom0-dispvm-preload-2-delay-0-api (mean:3.683): 44.20 🔻 ( previous job: 41.46, degradation: 106.60%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-0-api (mean:3.352): 40.23 🔻 ( previous job: 36.76, degradation: 109.43%)
  • debian-13-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.351): 40.21 🔻 ( previous job: 37.87, degradation: 106.20%)
  • debian-13-xfce_dom0-dispvm-preload-2-gui-api (mean:4.474): 53.68 🟢 ( previous job: 55.58, improvement: 96.58%)
  • debian-13-xfce_dom0-dispvm-preload-4-gui-api (mean:3.676): 44.11 🟢 ( previous job: 47.73, improvement: 92.43%)
  • debian-13-xfce_dom0-dispvm-preload-6-gui-api (mean:3.678): 44.13 🟢 ( previous job: 47.11, improvement: 93.67%)
  • debian-13-xfce_dom0-vm-gui-api (mean:0.038): 0.46 🟢 ( previous job: 0.48, improvement: 95.63%)
  • fedora-42-xfce_dom0-dispvm-api (mean:7.091): 85.10 🔻 ( previous job: 84.64, degradation: 100.54%)
  • fedora-42-xfce_dom0-dispvm-gui-api (mean:8.552): 102.62 🔻 ( previous job: 99.96, degradation: 102.66%)
  • fedora-42-xfce_dom0-dispvm-preload-2-api (mean:4.211): 50.53 🔻 ( previous job: 47.97, degradation: 105.34%)
  • fedora-42-xfce_dom0-dispvm-preload-2-delay-0-api (mean:4.061): 48.73 🔻 ( previous job: 48.54, degradation: 100.40%)
  • fedora-42-xfce_dom0-dispvm-preload-4-api (mean:3.612): 43.34 🔻 ( previous job: 39.46, degradation: 109.84%)
  • fedora-42-xfce_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:3.653): 43.84 🔻 ( previous job: 42.41, degradation: 103.36%)
  • fedora-42-xfce_dom0-dispvm-preload-2-gui-api (mean:5.373): 64.47 🔻 ( previous job: 62.27, degradation: 103.53%)
  • fedora-42-xfce_dom0-dispvm-preload-4-gui-api (mean:4.096): 49.15 🟢 ( previous job: 54.33, improvement: 90.47%)
  • fedora-42-xfce_dom0-dispvm-preload-6-gui-api (mean:3.662): 43.95 🟢 ( previous job: 54.25, improvement: 81.01%)
  • fedora-42-xfce_dom0-vm-api (mean:0.031): 0.37 🟢 ( previous job: 0.50, improvement: 73.21%)
  • fedora-42-xfce_dom0-vm-gui-api (mean:0.041): 0.49 🟢 ( previous job: 0.49, improvement: 99.39%)
  • whonix-workstation-18_dom0-dispvm-api (mean:9.357): 112.28 🔻 ( previous job: 110.52, degradation: 101.60%)
  • whonix-workstation-18_dom0-dispvm-gui-api (mean:10.507): 126.09 🔻 ( previous job: 121.96, degradation: 103.38%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-0-api (mean:5.109): 61.30 🟢 ( previous job: 61.89, improvement: 99.06%)
  • whonix-workstation-18_dom0-dispvm-preload-2-delay-minus-1d2-api (mean:5.896): 70.75 🔻 ( previous job: 69.42, degradation: 101.92%)
  • whonix-workstation-18_dom0-dispvm-preload-4-api (mean:4.745): 56.94 🔻 ( previous job: 56.66, degradation: 100.49%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-0-api (mean:4.837): 58.05 🟢 ( previous job: 60.57, improvement: 95.84%)
  • whonix-workstation-18_dom0-dispvm-preload-4-delay-minus-1d2-api (mean:4.884): 58.61 🟢 ( previous job: 59.37, improvement: 98.71%)
  • whonix-workstation-18_dom0-dispvm-preload-2-gui-api (mean:6.581): 78.97 🔻 ( previous job: 77.58, degradation: 101.78%)
  • whonix-workstation-18_dom0-dispvm-preload-4-gui-api (mean:5.293): 63.52 🟢 ( previous job: 69.81, improvement: 91.00%)
  • whonix-workstation-18_dom0-dispvm-preload-6-gui-api (mean:5.651): 67.81 🟢 ( previous job: 68.61, improvement: 98.85%)
  • whonix-workstation-18_dom0-vm-gui-api (mean:0.05): 0.60 🟢 ( previous job: 0.65, improvement: 92.57%)

@ben-grande
Copy link
Contributor

I tried to test this, but I am facing issues unrelated to this PR...

Details

[user@sys-audio ~]$ qvm-start-daemon --all --watch
Traceback (most recent call last):
  File "/usr/lib/python3.13/site-packages/qubesadmin/base.py", line 386, in __setattr__
    self.qubesd_call(
    ~~~~~~~~~~~~~~~~^
        self._method_dest,
        ^^^^^^^^^^^^^^^^^^
        self._method_prefix + 'Set',
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        key,
        ^^^^
        str(value).encode('utf-8'))
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/base.py", line 87, in qubesd_call
    return self.app.qubesd_call(dest, method, arg, payload,
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        payload_stream)
        ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/app.py", line 1023, in qubesd_call
    raise qubesadmin.exc.QubesDaemonAccessError(
        "Service call error: %s", stderr.decode()
    )
qubesadmin.exc.QubesDaemonAccessError: Service call error: Request refused


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/qvm-start-daemon", line 5, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/tools/qvm_start_daemon.py", line 1097, in main
    args = parser.parse_args()
  File "/usr/lib/python3.13/site-packages/qubesadmin/tools/__init__.py", line 431, in parse_args
    action.parse_qubes_app(self, namespace)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/tools/__init__.py", line 163, in parse_qubes_app
    for vm in app.domains
              ^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/app.py", line 153, in __iter__
    yield self[vm]
          ~~~~^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/app.py", line 109, in __getitem__
    return self.get_blind(item)
           ~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/app.py", line 126, in get_blind
    self._vm_objects[item] = cls(
                             ~~~^
        self.app, item, klass=klass, power_state=power_state
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/site-packages/qubesadmin/vm/__init__.py", line 60, in __init__
    self.log = logging.getLogger(name)
    ^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/base.py", line 393, in __setattr__
    raise qubesadmin.exc.QubesPropertyAccessError(key)
qubesadmin.exc.QubesPropertyAccessError: Failed to access 'log' property
Mar 02 X dom0 qrexec-policy-daemon[2796]: qrexec: admin.vm.List+: sys-audio -> dom0: allowed to dom0
Mar 02 X dom0 qrexec-policy-daemon[2796]: qrexec: admin.vm.property.Set+log: sys-audio -> disp3240: denied: no matching 

Why it is trying to set the logger like this... I tried to downgrade qubes-core-admin-client to much older versions, but it didn't help.

@marmarek
Copy link
Member Author

marmarek commented Mar 2, 2026

Did you took the whole repo, or just one fie? There were recently other changes in the repo related to type hints that look related to the error you get.

@ben-grande
Copy link
Contributor

Did you took the whole repo, or just one fie? There were recently other changes in the repo related to type hints that look related to the error you get.

Just that file and latest released version 4.3.29. I then cloned the repo from main branch and placed into PYTHONPATH, tried with some preloaded disposables, and it worked, no exception.

@marmarek marmarek merged commit 1a623d1 into QubesOS:main Mar 2, 2026
4 of 5 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.

Preloaded disposables don't work well with an audio VM

3 participants