Skip to content

Start GUI session in VM before GUI daemon connects #9940

@ben-grande

Description

@ben-grande

The problem you're addressing (if any)

When preloading disposables on boot, they can be paused before the user unlocks their GUI session via the display manager / lock screen, but qubes that have this behavior, won't be able to open applications after the GUI session has started.

Test case:

  1. Reboot QubesOS
  2. Unlock LUKS
  3. Do not unlock via the lock screen, instead use the Linux terminal with Alt-F2:
  4. On the Linux terminal, choose a qube to do the following, such as personal:
    1. qvm-start personal
    2. qvm-run -p --no-gui personal -- systemctl --user --wait is-system-running
    3. qvm-pause personal
  5. Still on the linux terminal, choose another qube to be in the control group and start it, such as work:
    1. qvm-start work
  6. Switch back to the main display and login via the lock screen
  7. Try to run a GUI application in the qube: qvm-run personal xterm (it will hang)

The difference I noticed is compared to qubes that are not paused when GUI session starts is that qubes-gui-agent on the domU does not connect to the socket once it is unpaused.

Restarting qubes-gui-agent on the domU has no effect.

To debug:

qvm-run -p --no-gui personal -- journalctl -xeu qubes-gui-agent
qvm-run -p --no-gui work -- journalctl -xeu qubes-gui-agent

Will notice that personal does not connect to the socket while work does.

Would help solve:

The solution you'd like

Make qubes-guid retry the connection once a qube is unpaused.

The value to a user and who that user might be

Users of preloaded disposables would have their preloads as soon as possible instead of having to wait for a login via GUI, which may not be available on headless machines.

Completion criteria checklist

No response

List of found side effects

Metadata

Metadata

Assignees

Labels

C: gui-virtualizationThis issue pertains to GUI virtualization in Qubes OS.P: defaultPriority: default. Default priority for new issues, to be replaced given sufficient information.pr submittedA pull request has been submitted for this issue.targets-4.3Feature planned for Qubes 4.3. Remove label if not implemented by release; leave if implemented.

Projects

Status

In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions