Skip to content

Avoid de-configuring non-existing interface #563

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

Merged
merged 1 commit into from
Mar 17, 2025

Conversation

marmarek
Copy link
Member

When 'vif-route-qubes offline' is called, the interface (usually)
doesn't exist anymore. In that case, commands are called with
'do_without_error', but while it doesn't fail the script, it still logs
misleading error message.

Avoid calling 'ip' on non-existing interface to remove its
address/route, as those are removed by the kernel implicitly anyway.
But still call them on online action (if interface doesn't exist at this
point, it will fail, and that's intentional to get proper error
message), or when the interface still exist at the time the script is
called (in which case, it may still race against disappearing the
interface, but then there is 'do_without_error' prefix as the
last resort). This way, it avoids confusing error in the common case,
but still ensure things are cleaned up in the unusual case of interface
staying there.

Copy link

codecov bot commented Mar 15, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.88%. Comparing base (254075f) to head (99bd2ec).
Report is 9 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #563      +/-   ##
==========================================
+ Coverage   70.46%   70.88%   +0.42%     
==========================================
  Files           3        3              
  Lines         474      474              
==========================================
+ Hits          334      336       +2     
+ Misses        140      138       -2     

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

@qubesos-bot
Copy link

qubesos-bot commented Mar 15, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025031619-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=2025021804-4.3&flavor=update

  • system_tests_qrexec

  • 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_install: Failed (test died)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...
  • 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...

Failed tests

15 failures
  • system_tests_whonix

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

    • whonixcheck: unnamed test (unknown)

  • system_tests_qrexec

  • 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_whonix@hw7

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

    • whonixcheck: unnamed test (unknown)

  • system_tests_qwt_win10_seamless@hw13

    • windows_install: Failed (test died)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...
  • 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_suspend@hw1

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

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

    • TC_03_QvmRevertTemplateChanges: test_000_revert_linux (error)
      subprocess.CalledProcessError: Command '['sha1sum', '/var/lib/qubes...

Fixed failures

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

6 fixed
  • 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) 'clipboard-paste-notif...
  • system_tests_audio

Unstable tests

Performance Tests

Performance degradation:

30 performance degradations
  • debian-12-xfce_exec: 8.26 :small_red_triangle_up: ( previous job: 7.15, degradation: 115.42%)
  • debian-12-xfce_exec-data-simplex: 67.67 :small_red_triangle_up: ( previous job: 48.93, degradation: 138.29%)
  • debian-12-xfce_exec-data-duplex: 70.26 :small_red_triangle_up: ( previous job: 50.76, degradation: 138.42%)
  • debian-12-xfce_exec-data-duplex-root: 91.08 :small_red_triangle_up: ( previous job: 64.91, degradation: 140.32%)
  • debian-12-xfce_socket-data-duplex: 162.24 :small_red_triangle_up: ( previous job: 81.49, degradation: 199.10%)
  • fedora-41-xfce_exec-data-simplex: 55.54 :small_red_triangle_up: ( previous job: 49.65, degradation: 111.86%)
  • fedora-41-xfce_exec-data-duplex: 70.98 :small_red_triangle_up: ( previous job: 49.08, degradation: 144.62%)
  • fedora-41-xfce_exec-data-duplex-root: 107.18 :small_red_triangle_up: ( previous job: 81.65, degradation: 131.27%)
  • fedora-41-xfce_socket-data-duplex: 150.62 :small_red_triangle_up: ( previous job: 78.62, degradation: 191.57%)
  • whonix-gateway-17_socket: 9.00 :small_red_triangle_up: ( previous job: 7.54, degradation: 119.26%)
  • whonix-gateway-17_exec-data-simplex: 81.08 :small_red_triangle_up: ( previous job: 48.76, degradation: 166.27%)
  • whonix-gateway-17_exec-data-duplex: 76.29 :small_red_triangle_up: ( previous job: 48.55, degradation: 157.12%)
  • whonix-gateway-17_exec-data-duplex-root: 91.64 :small_red_triangle_up: ( previous job: 70.13, degradation: 130.68%)
  • whonix-gateway-17_socket-data-duplex: 169.67 :small_red_triangle_up: ( previous job: 82.74, degradation: 205.06%)
  • whonix-workstation-17_exec-data-simplex: 75.61 :small_red_triangle_up: ( previous job: 47.01, degradation: 160.82%)
  • whonix-workstation-17_exec-data-duplex: 69.09 :small_red_triangle_up: ( previous job: 49.48, degradation: 139.65%)
  • whonix-workstation-17_exec-data-duplex-root: 100.15 :small_red_triangle_up: ( previous job: 79.93, degradation: 125.29%)
  • whonix-workstation-17_socket-data-duplex: 163.63 :small_red_triangle_up: ( previous job: 81.71, degradation: 200.25%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 206876.00 :small_red_triangle_up: ( previous job: 276742.00, degradation: 74.75%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 287045.00 :small_red_triangle_up: ( previous job: 423495.00, degradation: 67.78%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 119703.00 :small_red_triangle_up: ( previous job: 185030.00, degradation: 64.69%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8235.00 :small_red_triangle_up: ( previous job: 10163.00, degradation: 81.03%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 7761.00 :small_red_triangle_up: ( previous job: 8767.00, degradation: 88.53%)
  • fedora-41-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 310046.00 :small_red_triangle_up: ( previous job: 396586.00, degradation: 78.18%)
  • fedora-41-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 307500.00 :small_red_triangle_up: ( previous job: 343795.00, degradation: 89.44%)
  • fedora-41-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 70812.00 :small_red_triangle_up: ( previous job: 86742.00, degradation: 81.64%)
  • fedora-41-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 2975.00 :small_red_triangle_up: ( previous job: 3885.00, degradation: 76.58%)
  • fedora-41-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 362.00 :small_red_triangle_up: ( previous job: 1613.00, degradation: 22.44%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 7426.00 :small_red_triangle_up: ( previous job: 8408.00, degradation: 88.32%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1674.00 :small_red_triangle_up: ( previous job: 2693.00, degradation: 62.16%)

Remaining performance tests:

42 tests
  • debian-12-xfce_exec-root: 29.10 :small_red_triangle_up: ( previous job: 27.97, degradation: 104.04%)
  • debian-12-xfce_socket: 8.25 🟢 ( previous job: 8.33, improvement: 99.02%)
  • debian-12-xfce_socket-root: 7.97 🟢 ( previous job: 8.20, improvement: 97.17%)
  • fedora-41-xfce_exec: 9.18 :small_red_triangle_up: ( previous job: 9.13, degradation: 100.51%)
  • fedora-41-xfce_exec-root: 63.99 :small_red_triangle_up: ( previous job: 61.17, degradation: 104.60%)
  • fedora-41-xfce_socket: 8.49 🟢 ( previous job: 8.66, improvement: 97.97%)
  • fedora-41-xfce_socket-root: 9.00 :small_red_triangle_up: ( previous job: 8.61, degradation: 104.61%)
  • whonix-gateway-17_exec: 6.88 🟢 ( previous job: 7.87, improvement: 87.47%)
  • whonix-gateway-17_exec-root: 41.95 :small_red_triangle_up: ( previous job: 38.36, degradation: 109.36%)
  • whonix-gateway-17_socket-root: 7.95 🟢 ( previous job: 8.27, improvement: 96.12%)
  • whonix-workstation-17_exec: 8.09 🟢 ( previous job: 8.23, improvement: 98.33%)
  • whonix-workstation-17_exec-root: 57.74 :small_red_triangle_up: ( previous job: 52.56, degradation: 109.85%)
  • whonix-workstation-17_socket: 8.64 :small_red_triangle_up: ( previous job: 8.21, degradation: 105.20%)
  • whonix-workstation-17_socket-root: 8.23 :small_red_triangle_up: ( previous job: 8.20, degradation: 100.39%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 455506.00 :small_red_triangle_up: ( previous job: 486352.00, degradation: 93.66%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 101239.00 :green_circle: ( previous job: 100699.00, improvement: 100.54%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 6806.00 :green_circle: ( previous job: 3277.00, improvement: 207.69%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3731.00 :green_circle: ( previous job: 282.00, improvement: 1323.05%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 431512.00 :small_red_triangle_up: ( previous job: 475329.00, degradation: 90.78%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 308949.00 :green_circle: ( previous job: 95209.00, improvement: 324.50%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 435636.00 :green_circle: ( previous job: 433474.00, improvement: 100.50%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 188540.00 :green_circle: ( previous job: 164133.00, improvement: 114.87%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 98495.00 :small_red_triangle_up: ( previous job: 99808.00, degradation: 98.68%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7995.00 :green_circle: ( previous job: 7053.00, improvement: 113.36%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 3682.00 :small_red_triangle_up: ( previous job: 3868.00, degradation: 95.19%)
  • fedora-41-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 164222.00 :green_circle: ( previous job: 99783.00, improvement: 164.58%)
  • fedora-41-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 49437.00 :green_circle: ( previous job: 44770.00, improvement: 110.42%)
  • fedora-41-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 3425.00 :small_red_triangle_up: ( previous job: 3785.00, degradation: 90.49%)
  • fedora-41-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 9091.00 :green_circle: ( previous job: 8623.00, improvement: 105.43%)
  • fedora-41-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 1217.00 :green_circle: ( previous job: 1126.00, improvement: 108.08%)
  • fedora-41-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 369737.00 :small_red_triangle_up: ( previous job: 401907.00, degradation: 92.00%)
  • fedora-41-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 217006.00 :green_circle: ( previous job: 116848.00, improvement: 185.72%)
  • fedora-41-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 328604.00 :small_red_triangle_up: ( previous job: 357875.00, degradation: 91.82%)
  • fedora-41-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 57518.00 :green_circle: ( previous job: 41375.00, improvement: 139.02%)
  • fedora-41-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 82402.00 :small_red_triangle_up: ( previous job: 87999.00, degradation: 93.64%)
  • fedora-41-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 7871.00 :small_red_triangle_up: ( previous job: 8744.00, degradation: 90.02%)
  • fedora-41-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 363710.00 :small_red_triangle_up: ( previous job: 392725.00, degradation: 92.61%)
  • fedora-41-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 200215.00 :green_circle: ( previous job: 139933.00, improvement: 143.08%)
  • fedora-41-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 296291.00 :green_circle: ( previous job: 294875.00, improvement: 100.48%)
  • fedora-41-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 70472.00 :small_red_triangle_up: ( previous job: 78093.00, degradation: 90.24%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 83881.00 :green_circle: ( previous job: 71108.00, improvement: 117.96%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 3899.00 :small_red_triangle_up: ( previous job: 3959.00, degradation: 98.48%)

When 'vif-route-qubes offline' is called, the interface (usually)
doesn't exist anymore. In that case, commands are called with
'do_without_error', but while it doesn't fail the script, it still logs
misleading error message.

Avoid calling 'ip' on non-existing interface to remove its
address/route, as those are removed by the kernel implicitly anyway.
But still call them on online action (if interface doesn't exist at this
point, it will fail, and that's intentional to get proper error
message), or when the interface still exist at the time the script is
called (in which case, it may still race against disappearing the
interface, but then there is 'do_without_error' prefix as the
last resort). This way, it avoids confusing error in the common case,
but still ensure things are cleaned up in the unusual case of interface
staying there.
@marmarek marmarek merged commit 184ebfb into QubesOS:main Mar 17, 2025
4 of 5 checks passed
@marmarek marmarek deleted the vif-offline branch May 28, 2025 17:29
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.

2 participants