Skip to content

qubes-global-config crash on 4.3.0 #10847

@bartlomiejkida

Description

@bartlomiejkida

Qubes OS release

4.3 (upgraded from 4.2)

Brief summary

When I can run qubes-global-config, i see only:

Traceback (most recent call last):
  File "/usr/lib/python3.13/site-packages/qubes_config/global_config/global_config.py", line 304, in do_activate
    self.perform_setup()
    ~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/qubes_config/global_config/global_config.py", line 414, in perform_setup
    self.handlers["usb"] = DevicesHandler(
                           ~~~~~~~~~~~~~~^
        self.qapp, self.policy_manager, self.builder
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/site-packages/qubes_config/global_config/usb_devices.py", line 718, in __init__
    cats = [infc.category for infc in assignment.device.interfaces]
                                      ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/device_protocol.py", line 1387, in device
    devices = self.devices
              ^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/device_protocol.py", line 1366, in devices
    dev = self.backend_domain.devices[self.devclass][self.port_id]
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/devices.py", line 313, in __getitem__
    for dev in self.get_exposed_devices():
               ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/devices.py", line 259, in get_exposed_devices
    devices: bytes = self._vm.qubesd_call(
                     ~~~~~~~~~~~~~~~~~~~~^
        None, "admin.vm.device.{}.Available".format(self._class)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  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 876, in qubesd_call
    return self._parse_qubesd_response(return_data)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubesadmin/base.py", line 99, in _parse_qubesd_response
    raise qubesadmin.exc.QubesDaemonAccessError(
        'Got empty response from qubesd. See journalctl in dom0 for '
        'details.')
qubesadmin.exc.QubesDaemonAccessError: Got empty response from qubesd. See journalctl in dom0 for details.

journalctl -xe | grep qubesd shows:

Apr 15 14:46:52 dom0 qubesd[2030]: ERROR: unhandled exception while calling src=b'dom0' meth=b'admin.vm.device.pci.Available' dest=b'dom0' arg=b'' len(untrusted_payload)=0
Apr 15 14:46:52 dom0 qubesd[2030]: Traceback (most recent call last):
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/api/__init__.py", line 339, in respond
Apr 15 14:46:52 dom0 qubesd[2030]:     response = await self.mgmt.execute(
Apr 15 14:46:52 dom0 qubesd[2030]:                ^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:         untrusted_payload=untrusted_payload
Apr 15 14:46:52 dom0 qubesd[2030]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:     )
Apr 15 14:46:52 dom0 qubesd[2030]:     ^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/api/admin.py", line 1429, in vm_device_available
Apr 15 14:46:52 dom0 qubesd[2030]:     for dev in devices
Apr 15 14:46:52 dom0 qubesd[2030]:                ^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/devices.py", line 417, in get_exposed_devices
Apr 15 14:46:52 dom0 qubesd[2030]:     yield from self._vm.fire_event("device-list:" + self._bus)
Apr 15 14:46:52 dom0 qubesd[2030]:                ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/events.py", line 200, in fire_event
Apr 15 14:46:52 dom0 qubesd[2030]:     sync_effects, async_effects = self._fire_event(
Apr 15 14:46:52 dom0 qubesd[2030]:                                   ~~~~~~~~~~~~~~~~^
Apr 15 14:46:52 dom0 qubesd[2030]:         event, kwargs, pre_event=pre_event
Apr 15 14:46:52 dom0 qubesd[2030]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:     )
Apr 15 14:46:52 dom0 qubesd[2030]:     ^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/events.py", line 173, in _fire_event
Apr 15 14:46:52 dom0 qubesd[2030]:     effects.extend(effect)
Apr 15 14:46:52 dom0 qubesd[2030]:     ~~~~~~~~~~~~~~^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/ext/pci.py", line 369, in on_device_list_pci
Apr 15 14:46:52 dom0 qubesd[2030]:     yield PCIDevice(
Apr 15 14:46:52 dom0 qubesd[2030]:           ~~~~~~~~~^
Apr 15 14:46:52 dom0 qubesd[2030]:         Port(backend_domain=vm, port_id=None, devclass="pci"),
Apr 15 14:46:52 dom0 qubesd[2030]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:         libvirt_name=libvirt_name,
Apr 15 14:46:52 dom0 qubesd[2030]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]:     )
Apr 15 14:46:52 dom0 qubesd[2030]:     ^
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/ext/pci.py", line 156, in __init__
Apr 15 14:46:52 dom0 qubesd[2030]:     port_id = sbdf_to_path(libvirt_name)
Apr 15 14:46:52 dom0 qubesd[2030]:   File "/usr/lib/python3.13/site-packages/qubes/utils.py", line 416, in sbdf_to_path
Apr 15 14:46:52 dom0 qubesd[2030]:     assert int(bridge_match["bus"], 16) >= bus_offset
Apr 15 14:46:52 dom0 qubesd[2030]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 15 14:46:52 dom0 qubesd[2030]: AssertionError

Propably qvm-pci doesn't work too

[bkida@dom0 ~]$ qvm-pci
Error: Failed to list 'pci' devices, this device type either does not exist or you do not have access to it.
[bkida@dom0 ~]$ sudo qvm-pci
Error: Failed to list 'pci' devices, this device type either does not exist or you do not have access to it.
[bkida@dom0 ~]$ qvm-ls | grep -i usb
sys-usb                   Running  DispVM      red     default-dvm               -

Actual versions of packages:

[bkida@dom0 ~]$ sudo dnf list --installed | grep -i qubes-co
qubes-core-admin-addon-kicksecure.noarch          4.3.1-1.fc41                         qubes-dom0-cached
qubes-core-admin-addon-whonix.noarch              4.3.6-1.fc41                         qubes-dom0-cached
qubes-core-admin-client.noarch                    4.3.30-1.fc41                        qubes-dom0-cached
qubes-core-dom0.noarch                            4.3.44-1.fc41                        qubes-dom0-cached
qubes-core-dom0-linux.x86_64                      4.3.21-1.fc41                        qubes-dom0-cached
qubes-core-dom0-linux-kernel-install.x86_64       4.3.21-1.fc41                        qubes-dom0-cached
qubes-core-qrexec.x86_64                          4.3.12-1.fc41                        qubes-dom0-cached
qubes-core-qrexec-dom0.x86_64                     4.3.12-1.fc41                        qubes-dom0-cached
qubes-core-qrexec-libs.x86_64                     4.3.12-1.fc41                        qubes-dom0-cached

Steps to reproduce

Upgraded QubesOS 4.3 on Dell latitude 5420

Expected behavior

Working qubes-global-config

Actual behavior

Crash :)

Additional information

I'm happy to provide additional information if anything is missing. Generally, everything works in the system (e.g., Qube Manager), but I can't access this tool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: Qubes GUI toolsThis issue pertains to Qubes GUI tools such as the Qube Manager and Qubes widgets.P: defaultPriority: default. Default priority for new issues, to be replaced given sufficient information.affects-4.3This issue affects Qubes OS 4.3.needs diagnosisRequires technical diagnosis from developer. Replace with "diagnosed" or remove if otherwise closed.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions