Qubes Global Config crashes after inplace upgrade to Qubes 4.2

After in-place upgrade to Qubes 4.2 on a NH5x_NHxHP notebook Qubes Global Config (Qubes Tools > Qubes Global Config) is unusable, when clicking on it there is a short (less than half a second?) flash of loading “system settings” and it crashes.
Is there a commandline to start Qubes Global Config?
So I maybe can see what the problem is here. On a desktop after clean install it works normally.


Few seconds of video: Nubo Cloud

The command is just qubes-global-config.

1 Like

When Qubes 4.2 becomes the stable release I’ll perform a clean install end restore everything exept dom0 from backup.

$ qubes-global-config
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/qubes_config/global_config/global_config.py", line 207, in do_activate
    self.perform_setup()
  File "/usr/lib/python3.11/site-packages/qubes_config/global_config/global_config.py", line 285, in perform_setup
    self.handlers['usb'] = DevicesHandler(
                           ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/qubes_config/global_config/usb_devices.py", line 634, in __init__
    for device in vm.devices['pci'].attached():
  File "/usr/lib/python3.11/site-packages/qubesadmin/devices.py", line 222, in attached
    yield assignment.device
          ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/qubesadmin/devices.py", line 74, in device
    return self.backend_domain.devices[self.devclass][self.ident]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/qubesadmin/devices.py", line 282, in __getitem__
    for dev in self.available():
  File "/usr/lib/python3.11/site-packages/qubesadmin/devices.py", line 235, in available
    self._vm.qubesd_call(None,
  File "/usr/lib/python3.11/site-packages/qubesadmin/base.py", line 76, in qubesd_call
    return self.app.qubesd_call(dest, method, arg, payload,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/qubesadmin/app.py", line 770, in qubesd_call
    return self._parse_qubesd_response(return_data)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/qubesadmin/base.py", line 89, in _parse_qubesd_response
    raise qubesadmin.exc.QubesDaemonAccessError(
qubesadmin.exc.QubesDaemonAccessError: Got empty response from qubesd. See journalctl in dom0 for details.

Journalctl:

Sep 06 23:48:37 dom0 qubesd[2681]: unhandled exception while calling src=b'dom0' meth=b'admin.vm.device.pci.Available' dest=b'dom0' arg=b'' len(untrusted_payload)=0
Sep 06 23:48:37 dom0 qubesd[2681]: Traceback (most recent call last):
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/api/__init__.py", line 297, in respond
Sep 06 23:48:37 dom0 qubesd[2681]:     response = await self.mgmt.execute(
Sep 06 23:48:37 dom0 qubesd[2681]:                ^^^^^^^^^^^^^^^^^^^^^^^^
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/api/admin.py", line 1195, in vm_device_available
Sep 06 23:48:37 dom0 qubesd[2681]:     devices = self.dest.devices[devclass].available()
Sep 06 23:48:37 dom0 qubesd[2681]:               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/devices.py", line 376, in available
Sep 06 23:48:37 dom0 qubesd[2681]:     devices = self._vm.fire_event('device-list:' + self._bus)
Sep 06 23:48:37 dom0 qubesd[2681]:               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/events.py", line 195, in fire_event
Sep 06 23:48:37 dom0 qubesd[2681]:     sync_effects, async_effects = self._fire_event(event, kwargs,
Sep 06 23:48:37 dom0 qubesd[2681]:                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/events.py", line 168, in _fire_event
Sep 06 23:48:37 dom0 qubesd[2681]:     effects.extend(effect)
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/ext/pci.py", line 192, in on_device_list_pci
Sep 06 23:48:37 dom0 qubesd[2681]:     yield PCIDevice(vm, None, libvirt_name=libvirt_name)
Sep 06 23:48:37 dom0 qubesd[2681]:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sep 06 23:48:37 dom0 qubesd[2681]:   File "/usr/lib/python3.11/site-packages/qubes/ext/pci.py", line 141, in __init__
Sep 06 23:48:37 dom0 qubesd[2681]:     assert dev_match
Sep 06 23:48:37 dom0 qubesd[2681]: AssertionError

Three backticks

```
on their own line before and after any code block (or terminal output) are your best friends @pjmbraet!

They trigger some automatic formatting to make such blocks much more readable, and make it easier to see where the code starts and the commentary ends or vice-versa. :wink:

1 Like

Fixed in Qubes 4.2.0-rc4:

2 Likes