Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

trying to start DispVM from Qubes start menu keeps starting DVM Template instead #5700

Closed
adrelanos opened this issue Mar 1, 2020 · 3 comments
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. R: duplicate Resolution: Another issue exists that is very similar to or subsumes this one. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists.

Comments

@adrelanos
Copy link
Member

Qubes OS version
4.0

Affected component(s) or functionality
DispVMs

Brief summary
When trying to start a whonix-ws-15-dvm based DispVM, the DVM Template is started instead.

To Reproduce

A previously (long time) used Qubes installation.

Installed these:

Although no chances in Whonix made any changes related to DVM / DispVM.

sudo qubesctl state.sls qvm.anon-whonix
local:
----------
          ID: template-whonix-ws-15
    Function: pkg.installed
        Name: qubes-template-whonix-ws-15
      Result: True
     Comment: Package qubes-template-whonix-ws-15 is already installed
     Started: 09:48:47.726790
    Duration: 1034.369 ms
     Changes:
----------
          ID: whonix-ws-tag
    Function: qvm.vm
        Name: whonix-ws-15
      Result: True
     Comment: ====== ['features'] ======
              [SKIP] Feature already in desired state: ENABLE 'whonix-ws' = Enabled

              ====== ['tags'] ======
              [SKIP] All requested tags already set: created-by-dom0,whonix-updatevm
     Started: 09:48:48.768560
    Duration: 502.481 ms
     Changes:
----------
          ID: whonix-ws-update-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.UpdatesProxy
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.UpdatesProxy is in correct state
     Started: 09:48:49.299252
    Duration: 5.467 ms
     Changes:
----------
          ID: whonix-get-date-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.GetDate
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.GetDate is in correct state
     Started: 09:48:49.304880
    Duration: 2.217 ms
     Changes:
----------
          ID: template-whonix-gw-15
    Function: pkg.installed
        Name: qubes-template-whonix-gw-15
      Result: True
     Comment: Package qubes-template-whonix-gw-15 is already installed
     Started: 09:48:49.307244
    Duration: 0.52 ms
     Changes:
----------
          ID: whonix-gw-tag
    Function: qvm.vm
        Name: whonix-gw-15
      Result: True
     Comment: ====== ['features'] ======
              [SKIP] Feature already in desired state: ENABLE 'whonix-gw' = Enabled

              ====== ['tags'] ======
              [SKIP] All requested tags already set: created-by-dom0,whonix-updatevm
     Started: 09:48:49.307915
    Duration: 515.752 ms
     Changes:
----------
          ID: whonix-gw-update-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.UpdatesProxy
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.UpdatesProxy is in correct state
     Started: 09:48:49.823799
    Duration: 1.68 ms
     Changes:
----------
          ID: sys-net
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-net None
     Started: 09:48:49.825599
    Duration: 245.534 ms
     Changes:
----------
          ID: sys-firewall
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-firewall None
     Started: 09:48:50.071555
    Duration: 239.363 ms
     Changes:
----------
          ID: sys-whonix
    Function: qvm.vm
      Result: True
     Comment: ====== ['present'] ======
              /usr/bin/qvm-create sys-whonix --class=AppVM --template=whonix-gw-15 --label=black --property=memory=500

              ====== ['prefs'] ======
     Started: 09:48:50.312175
    Duration: 4511.749 ms
     Changes:
              ----------
              qvm.prefs:
                  ----------
                  qvm.create:
                      ----------
                      autostart:
                          ----------
                          new:
                              True
                          old:
                              *default*
                      netvm:
                          ----------
                          new:
                              sys-firewall
                          old:
                              *default*
                      provides_network:
                          ----------
                          new:
                              True
                          old:
                              *default*
----------
          ID: whonix-ws-15-dvm
    Function: qvm.vm
      Result: True
     Comment: ====== ['present'] ======
              /usr/bin/qvm-create whonix-ws-15-dvm --class=AppVM --template=whonix-ws-15 --label=red

              ====== ['prefs'] ======
              [SKIP] default_dispvm     : whonix-ws-15-dvm
              [SKIP] netvm              : sys-whonix

              ====== ['features'] ======


              ====== ['tags'] ======
              [SKIP] All requested tags already set: anon-vm,created-by-dom0
     Started: 09:48:54.826786
    Duration: 3917.855 ms
     Changes:
              ----------
              qvm.features:
                  ----------
                  qvm.features:
                      ----------
                      appmenus-dispvm:
                          ----------
                          new:
                              1
                          old:
                              None
              qvm.prefs:
                  ----------
                  qvm.create:
                      ----------
                      template_for_dispvms:
                          ----------
                          new:
                              True
                          old:
                              *default*
----------
          ID: qvm-appmenus --update whonix-ws-15-dvm
    Function: cmd.run
      Result: True
     Comment: Command "qvm-appmenus --update whonix-ws-15-dvm" run
     Started: 09:48:58.745115
    Duration: 660.777 ms
     Changes:
              ----------
              pid:
                  23523
              retcode:
                  0
              stderr:
                  whonix-ws-15-dvm: Creating appmenus
              stdout:
----------
          ID: anon-whonix
    Function: qvm.vm
      Result: True
     Comment: ====== ['present'] ======
              /usr/bin/qvm-create anon-whonix --class=AppVM --template=whonix-ws-15 --label=red

              ====== ['prefs'] ======
              [SKIP] default_dispvm     : whonix-ws-15-dvm
              [SKIP] netvm              : sys-whonix

              ====== ['tags'] ======
              [SKIP] All requested tags already set: anon-vm,created-by-dom0
     Started: 09:48:59.406760
    Duration: 2884.131 ms
     Changes:

Summary for local
-------------
Succeeded: 13 (changed=3)
Failed:     0
-------------
Total states run:     13
Total run time:   14.522 s

sudo qubesctl state.sls qvm.whonix-ws-dvm
local:
----------
          ID: template-whonix-ws-15
    Function: pkg.installed
        Name: qubes-template-whonix-ws-15
      Result: True
     Comment: Package qubes-template-whonix-ws-15 is already installed
     Started: 09:49:06.922635
    Duration: 1026.758 ms
     Changes:
----------
          ID: whonix-ws-tag
    Function: qvm.vm
        Name: whonix-ws-15
      Result: True
     Comment: ====== ['features'] ======
              [SKIP] Feature already in desired state: ENABLE 'whonix-ws' = Enabled

              ====== ['tags'] ======
              [SKIP] All requested tags already set: created-by-dom0,whonix-updatevm
     Started: 09:49:07.952189
    Duration: 516.423 ms
     Changes:
----------
          ID: whonix-ws-update-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.UpdatesProxy
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.UpdatesProxy is in correct state
     Started: 09:49:08.470759
    Duration: 4.127 ms
     Changes:
----------
          ID: whonix-get-date-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.GetDate
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.GetDate is in correct state
     Started: 09:49:08.474993
    Duration: 1.289 ms
     Changes:
----------
          ID: template-whonix-gw-15
    Function: pkg.installed
        Name: qubes-template-whonix-gw-15
      Result: True
     Comment: Package qubes-template-whonix-gw-15 is already installed
     Started: 09:49:08.476363
    Duration: 0.344 ms
     Changes:
----------
          ID: whonix-gw-tag
    Function: qvm.vm
        Name: whonix-gw-15
      Result: True
     Comment: ====== ['features'] ======
              [SKIP] Feature already in desired state: ENABLE 'whonix-gw' = Enabled

              ====== ['tags'] ======
              [SKIP] All requested tags already set: created-by-dom0,whonix-updatevm
     Started: 09:49:08.476787
    Duration: 508.8 ms
     Changes:
----------
          ID: whonix-gw-update-policy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.UpdatesProxy
      Result: True
     Comment: File /etc/qubes-rpc/policy/qubes.UpdatesProxy is in correct state
     Started: 09:49:08.985714
    Duration: 1.705 ms
     Changes:
----------
          ID: sys-net
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-net None
     Started: 09:49:08.987514
    Duration: 243.639 ms
     Changes:
----------
          ID: sys-firewall
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-firewall None
     Started: 09:49:09.231551
    Duration: 240.25 ms
     Changes:
----------
          ID: sys-whonix
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-whonix None
     Started: 09:49:09.472229
    Duration: 243.825 ms
     Changes:
----------
          ID: whonix-ws-15-dvm
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check whonix-ws-15-dvm None
     Started: 09:49:09.721895
    Duration: 242.614 ms
     Changes:
----------
          ID: qvm-appmenus --update whonix-ws-15-dvm
    Function: cmd.run
      Result: True
     Comment: State was not run because none of the onchanges reqs changed
     Changes:

Summary for local
-------------
Succeeded: 12
Failed:     0
-------------
Total states run:     12
Total run time:    3.030 s

sudo qubesctl state.highstate
local:
----------
          ID: topd-always-passes
    Function: test.succeed_without_changes
        Name: foo
      Result: True
     Comment: Success!
     Started: 09:49:13.185625
    Duration: 0.319 ms
     Changes:

Summary for local
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time:   0.319 ms

Qubes start menu -> Disposable: whonix-ws-15-dvm -> xfce4-terminal

And again (first start vs subsequent start):
Qubes start menu -> Disposable: whonix-ws-15-dvm -> xfce4-terminal

Expected behavior
DispVM starts.
DispVM starts.

Actual behavior
whonix-ws-15-dvm DVM Template starts

Additional context
Although no chances in Whonix made any changes related to DVM / DispVM. Also all that Whonix does happens inside the VM. Starting DVM vs DispVM however is up to dom0 which I am not aware was changed recently. I wouldn't know why this would be a Whonix specific bug even though I happened to run into this when testing Whonix.

Solutions you've tried
qvm-run --dispvm=whonix-ws-15-dvm xfce4-terminal starts a DispVM as expected.

The following diff:

diff ./.local/share/applications/whonix-ws-15-dvm-xfce4-terminal.desktop ./.local/share/qubes-appmenus/debian-dvm/apps/debian-dvm-xfce4-terminal.desktop

Looks just fine.

l/share/qubes-appmenus/debian-dvm/apps/debian-dvm-xfce4-terminal.desktop
5,8c5,8
< X-Qubes-VmName=whonix-ws-15-dvm
< Icon=/home/user/.local/share/qubes-appmenus/whonix-ws-15-dvm/apps.icons/xfce4-terminal.png
< Name=whonix-ws-15-dvm: Xfce Terminal
< GenericName=whonix-ws-15-dvm: Terminal Emulator
---
> X-Qubes-VmName=debian-dvm
> Icon=/home/user/.local/share/qubes-appmenus/debian-dvm/apps.icons/xfce4-terminal.png
> Name=debian-dvm: Xfce Terminal
> GenericName=debian-dvm: Terminal Emulator
11,12c11,12
< X-Qubes-NonDispvmExec=qvm-run -q -a --service -- whonix-ws-15-dvm qubes.StartApp+xfce4-terminal
< Exec=qvm-run -q -a --service --dispvm=whonix-ws-15-dvm -- qubes.StartApp+xfce4-terminal
---
> X-Qubes-NonDispvmExec=qvm-run -q -a --service -- debian-dvm qubes.StartApp+xfce4-terminal
> Exec=qvm-run -q -a --service --dispvm=debian-dvm -- qubes.StartApp+xfce4-terminal

Qubes start menu -> Disposable: debian-dvm -> xfce4-terminal still functioning as expected (starting a DispVM, not DVM template).

@adrelanos adrelanos added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists. labels Mar 1, 2020
@marmarek
Copy link
Member

marmarek commented Mar 1, 2020

I think this is a duplicate of #3574

Anyway, when you start the application - can you verify on the process list that indeed qvm-run with the right options is used?

@adrelanos
Copy link
Member Author

Looks wrong.

user      6788  1.6  0.3  41684 11960 ?        S    13:06   0:00 /usr/bin/python3 /usr/bin/qvm-run -q -a --service -- whonix-ws-15-dvm qubes.StartApp+xfce4-terminal
user      3897  0.0  0.3  41680 12104 ?        S    12:22   0:00 /usr/bin/python3 /usr/bin/qvm-run -q -a --service --dispvm=debian-dvm -- qubes.StartApp+xfce4-terminal

@adrelanos
Copy link
Member Author

Duplicate indeed.

@andrewdavidwong andrewdavidwong added the R: duplicate Resolution: Another issue exists that is very similar to or subsumes this one. label Mar 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. R: duplicate Resolution: Another issue exists that is very similar to or subsumes this one. T: bug Type: bug report. A problem or defect resulting in unintended behavior in something that exists.
Projects
None yet
Development

No branches or pull requests

3 participants