Skip to content

Conversation

@marmarek
Copy link
Member

@marmarek marmarek commented Apr 2, 2025

Test vm1 -> relay -> vm2-remote call path. Do it on a single host by having
relay service that transform names (source to source-remote and
target-remote to target). For this to work, there need to be matching pairs
of VMs with and without -remote suffix, and appropriate policy for both
outgoing and incoming connections.

QubesOS/qubes-issues#9015

@marmarek
Copy link
Member Author

marmarek commented Apr 2, 2025

@fepitre I tried this. It doesn't work yet. First I hit the bug I commented in the qrexec PR. But then the source on remote side is not set - it appears as the connection is coming from the relay, not vm1-remote.

@codecov
Copy link

codecov bot commented Apr 3, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.26%. Comparing base (8a93ad3) to head (e90249b).
Report is 30 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #669      +/-   ##
==========================================
+ Coverage   70.24%   70.26%   +0.02%     
==========================================
  Files          59       59              
  Lines       12739    12788      +49     
==========================================
+ Hits         8948     8986      +38     
- Misses       3791     3802      +11     
Flag Coverage Δ
unittests 70.26% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@fepitre
Copy link
Member

fepitre commented Apr 3, 2025

@fepitre I tried this. It doesn't work yet. First I hit the bug I commented in the qrexec PR. But then the source on remote side is not set - it appears as the connection is coming from the relay, not vm1-remote.

Yes, I did not added the translation to source being the vm calling qrexec originally.

@qubesos-bot
Copy link

qubesos-bot commented Apr 4, 2025

OpenQA test summary

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

Test run included the following:

New failures, excluding unstable

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

  • system_tests_suspend

  • system_tests_extra

    • TC_00_QVCTest_whonix-gateway-17: test_010_screenshare (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0
  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • 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: wait_serial (wait serial expected)
      # wait_serial expected: qr/dcWzE-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_audio@hw1

Failed tests

10 failures
  • system_tests_suspend

    • suspend: unnamed test (unknown)
    • suspend: Failed (test died)
      # Test died: no candidate needle with tag(s) 'SUSPEND-FAILED' match...
  • system_tests_extra

    • TC_00_QVCTest_whonix-gateway-17: test_010_screenshare (failure)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^... AssertionError: 0 == 0
  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • 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: wait_serial (wait serial expected)
      # wait_serial expected: qr/dcWzE-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_audio@hw1

Fixed failures

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

13 fixed
  • system_tests_whonix

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

    • whonixcheck: unnamed test (unknown)

  • system_tests_suspend

  • system_tests_basic_vm_qrexec_gui

  • system_tests_qrexec

  • system_tests_kde_gui_interactive

    • clipboard_and_web: unnamed test (unknown)

    • clipboard_and_web: Failed (test died)
      # Test died: no candidate needle with tag(s) 'qubes-website' matche...

    • clipboard_and_web: wait_serial (wait serial expected)
      # wait_serial expected: "lspci; echo 2E8vz-\$?-"...

  • system_tests_audio

  • system_tests_whonix@hw7

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

    • whonixcheck: unnamed test (unknown)

  • system_tests_guivm_vnc_gui_interactive

    • gui_filecopy: unnamed test (unknown)
    • gui_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'files-work' matched...

Unstable tests

Details

Performance Tests

Performance degradation:

14 performance degradations
  • debian-12-xfce_exec: 8.25 :small_red_triangle_up: ( previous job: 7.12, degradation: 115.90%)
  • whonix-gateway-17_exec: 8.03 :small_red_triangle_up: ( previous job: 6.82, degradation: 117.73%)
  • whonix-gateway-17_socket: 8.06 :small_red_triangle_up: ( previous job: 7.24, degradation: 111.38%)
  • whonix-gateway-17_socket-root: 9.59 :small_red_triangle_up: ( previous job: 7.65, degradation: 125.37%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 7919.00 :small_red_triangle_up: ( previous job: 10795.00, degradation: 73.36%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3929.00 :small_red_triangle_up: ( previous job: 4826.00, degradation: 81.41%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 221639.00 :small_red_triangle_up: ( previous job: 250795.00, degradation: 88.37%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 3074.00 :small_red_triangle_up: ( previous job: 4903.00, degradation: 62.70%)
  • fedora-41-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 56653.00 :small_red_triangle_up: ( previous job: 87940.00, degradation: 64.42%)
  • fedora-41-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 2273.00 :small_red_triangle_up: ( previous job: 3599.00, degradation: 63.16%)
  • fedora-41-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 151859.00 :small_red_triangle_up: ( previous job: 170062.00, degradation: 89.30%)
  • fedora-41-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 86862.00 :small_red_triangle_up: ( previous job: 179949.00, degradation: 48.27%)
  • fedora-41-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 286339.00 :small_red_triangle_up: ( previous job: 324737.00, degradation: 88.18%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2135.00 :small_red_triangle_up: ( previous job: 5672.00, degradation: 37.64%)

Remaining performance tests:

58 tests
  • debian-12-xfce_exec-root: 29.12 :small_red_triangle_up: ( previous job: 28.65, degradation: 101.63%)
  • debian-12-xfce_socket: 8.45 🟢 ( previous job: 8.60, improvement: 98.26%)
  • debian-12-xfce_socket-root: 8.91 :small_red_triangle_up: ( previous job: 8.52, degradation: 104.51%)
  • debian-12-xfce_exec-data-simplex: 61.95 🟢 ( previous job: 71.62, improvement: 86.50%)
  • debian-12-xfce_exec-data-duplex: 70.87 :small_red_triangle_up: ( previous job: 70.34, degradation: 100.75%)
  • debian-12-xfce_exec-data-duplex-root: 81.37 🟢 ( previous job: 82.72, improvement: 98.37%)
  • debian-12-xfce_socket-data-duplex: 163.92 :small_red_triangle_up: ( previous job: 156.96, degradation: 104.44%)
  • fedora-41-xfce_exec: 9.40 :small_red_triangle_up: ( previous job: 9.27, degradation: 101.45%)
  • fedora-41-xfce_exec-root: 61.96 :small_red_triangle_up: ( previous job: 61.51, degradation: 100.74%)
  • fedora-41-xfce_socket: 8.39 🟢 ( previous job: 8.63, improvement: 97.21%)
  • fedora-41-xfce_socket-root: 8.25 🟢 ( previous job: 8.71, improvement: 94.71%)
  • fedora-41-xfce_exec-data-simplex: 74.08 🟢 ( previous job: 75.53, improvement: 98.07%)
  • fedora-41-xfce_exec-data-duplex: 62.20 🟢 ( previous job: 71.56, improvement: 86.92%)
  • fedora-41-xfce_exec-data-duplex-root: 100.20 🟢 ( previous job: 109.13, improvement: 91.82%)
  • fedora-41-xfce_socket-data-duplex: 153.77 :small_red_triangle_up: ( previous job: 150.61, degradation: 102.10%)
  • whonix-gateway-17_exec-root: 40.36 🟢 ( previous job: 40.43, improvement: 99.82%)
  • whonix-gateway-17_exec-data-simplex: 74.81 🟢 ( previous job: 78.32, improvement: 95.52%)
  • whonix-gateway-17_exec-data-duplex: 77.92 :small_red_triangle_up: ( previous job: 76.65, degradation: 101.66%)
  • whonix-gateway-17_exec-data-duplex-root: 79.61 🟢 ( previous job: 88.52, improvement: 89.94%)
  • whonix-gateway-17_socket-data-duplex: 170.27 🟢 ( previous job: 171.76, improvement: 99.13%)
  • whonix-workstation-17_exec: 7.78 :small_red_triangle_up: ( previous job: 7.67, degradation: 101.41%)
  • whonix-workstation-17_exec-root: 54.41 🟢 ( previous job: 58.26, improvement: 93.38%)
  • whonix-workstation-17_socket: 7.91 🟢 ( previous job: 8.19, improvement: 96.56%)
  • whonix-workstation-17_socket-root: 8.61 :small_red_triangle_up: ( previous job: 8.13, degradation: 105.86%)
  • whonix-workstation-17_exec-data-simplex: 71.65 🟢 ( previous job: 74.99, improvement: 95.54%)
  • whonix-workstation-17_exec-data-duplex: 71.31 🟢 ( previous job: 72.71, improvement: 98.08%)
  • whonix-workstation-17_exec-data-duplex-root: 98.73 🟢 ( previous job: 99.82, improvement: 98.91%)
  • whonix-workstation-17_socket-data-duplex: 159.62 🟢 ( previous job: 169.50, improvement: 94.17%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 445255.00 :small_red_triangle_up: ( previous job: 446963.00, degradation: 99.62%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 183373.00 :green_circle: ( previous job: 129298.00, improvement: 141.82%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 411690.00 :green_circle: ( previous job: 294295.00, improvement: 139.89%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 146898.00 :green_circle: ( previous job: 95454.00, improvement: 153.89%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 110011.00 :green_circle: ( previous job: 79803.00, improvement: 137.85%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 8026.00 :green_circle: ( previous job: 6149.00, improvement: 130.53%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 457693.00 :green_circle: ( previous job: 382273.00, improvement: 119.73%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 439102.00 :green_circle: ( previous job: 437636.00, improvement: 100.33%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 187426.00 :green_circle: ( previous job: 184752.00, improvement: 101.45%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 94784.00 :green_circle: ( previous job: 62195.00, improvement: 152.40%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 7214.00 :green_circle: ( previous job: 6479.00, improvement: 111.34%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7600.00 :small_red_triangle_up: ( previous job: 7669.00, degradation: 99.10%)
  • fedora-41-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 409120.00 :green_circle: ( previous job: 368309.00, improvement: 111.08%)
  • fedora-41-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 170632.00 :green_circle: ( previous job: 162081.00, improvement: 105.28%)
  • fedora-41-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 313288.00 :small_red_triangle_up: ( previous job: 318716.00, degradation: 98.30%)
  • fedora-41-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 85044.00 :green_circle: ( previous job: 82694.00, improvement: 102.84%)
  • fedora-41-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8307.00 :small_red_triangle_up: ( previous job: 8485.00, degradation: 97.90%)
  • fedora-41-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 1265.00 :green_circle: ( previous job: 542.00, improvement: 233.39%)
  • fedora-41-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 381161.00 :green_circle: ( previous job: 373957.00, improvement: 101.93%)
  • fedora-41-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 333092.00 :small_red_triangle_up: ( previous job: 334687.00, degradation: 99.52%)
  • fedora-41-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 86931.00 :green_circle: ( previous job: 61534.00, improvement: 141.27%)
  • fedora-41-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 86944.00 :green_circle: ( previous job: 80283.00, improvement: 108.30%)
  • fedora-41-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 2211.00 :small_red_triangle_up: ( previous job: 2215.00, degradation: 99.82%)
  • fedora-41-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 9066.00 :green_circle: ( previous job: 7540.00, improvement: 120.24%)
  • fedora-41-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 1359.00 :green_circle: ( previous job: 1130.00, improvement: 120.27%)
  • fedora-41-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 352225.00 :small_red_triangle_up: ( previous job: 369868.00, degradation: 95.23%)
  • fedora-41-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 124319.00 :green_circle: ( previous job: 17567.00, improvement: 707.68%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 83336.00 :green_circle: ( previous job: 79021.00, improvement: 105.46%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8830.00 :green_circle: ( previous job: 7867.00, improvement: 112.24%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1910.00 :small_red_triangle_up: ( previous job: 1953.00, degradation: 97.80%)

marmarek added a commit that referenced this pull request Apr 16, 2025
* origin/pr/674:
  tests: only close watch fd for LocalVM

Pull request description:

```
======================================================================
ERROR: qubes.tests.integ.misc/TC_10_RemoteVM_fedora-41-xfce/test_000_full_connect
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/site-packages/qubes/tests/__init__.py", line 891, in cleanup_app
    self.remove_test_vms()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/qubes/tests/__init__.py", line 1216, in remove_test_vms
    self.remove_vms(
    ~~~~~~~~~~~~~~~^
        [
        ^
    ...<9 lines>...
        ]
        ^
    )
    ^
  File "/usr/lib/python3.13/site-packages/qubes/tests/__init__.py", line 1187, in remove_vms
    self._remove_vm_qubes(vm)
    ~~~~~~~~~~~~~~~~~~~~~^^^^
  File "/usr/lib/python3.13/site-packages/qubes/tests/__init__.py", line 1029, in _remove_vm_qubes
    del app.domains[vm.qid]
        ~~~~~~~~~~~^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubes/app.py", line 568, in __delitem__
    self.app.fire_event("domain-delete", vm=vm)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/qubes/events.py", line 200, in fire_event
    sync_effects, async_effects = self._fire_event(
                                  ~~~~~~~~~~~~~~~~^
        event, kwargs, pre_event=pre_event
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/lib/python3.13/site-packages/qubes/events.py", line 169, in _fire_event
    effect = func(self, event, **kwargs)
  File "/usr/lib/python3.13/site-packages/qubes/tests/__init__.py", line 883, in close_qdb_on_remove
    if vm._qdb_connection_watch is not None:
       ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'RemoteVM' object has no attribute '_qdb_connection_watch'
```

Related to #669.
Test vm1 -> relay -> vm2-remote call path. Do it on a single host by
having relay service that transform names (source to source-remote and
target-remote to target). For this to work, there need to be matching
pairs of VMs with and without -remote suffix, and appropriate policy for
both outgoing and incoming connections.

For now put the test into 'misc' package, when there will be more
qubes-air related tests, move it elsewhere.

QubesOS/qubes-issues#9015
RemoteVM has much less attributes, so use getattr to handle this
gracefully. At the same time, add also "relayvm" attribute too.

QubesOS/qubes-issues#9015
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.

3 participants