Page MenuHomeVyOS Platform

Adding/removing members from bond doesn't work/results in incorrect interface state
Closed, ResolvedPublicBUG

Description

There seems to a few issues with respect to adding/removing bond members live (i.e. during commit, as opposed to at boot time):

  1. Adding individual bond members beyond the first two does not result in the interfaces being slaved to the bond until a reboot
  2. Adding/Removing bond members does not respect the interface's disabled state, bringing interfaces online

After a reboot the interface states correctly match the running/effective config, but after a commit interface states don't match the config if one of the above criteria is hit. Hitting the first case is particularly annoying as the only way to get bond members to be enslaved on commit would be to remove all bond members, commit, then add all the members back, or rebooting.

Relevant PRs:

https://github.com/vyos/vyos-1x/pull/1517
https://github.com/vyos/vyos-1x/pull/1518

Changes have been tested against equuleus (vyos-1x commit e8eed64ae) and current (vyos-1.4-rolling-202208291850-amd64.iso) on QEMU/KVM. Additionally tested against equuleus 1.3.1 on bare-metal.

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Viacheslav changed the subtype of this task from "Task" to "Bug".Sep 2 2022, 11:55 AM

It seems can't pass smoketest

05:47:04  DEBUG - ======================================================================
05:47:04  DEBUG - FAIL: test_add_multiple_ip_addresses (__main__.BondingInterfaceTest)
05:47:04  DEBUG - ----------------------------------------------------------------------
05:47:04  DEBUG - Traceback (most recent call last):
05:47:04  DEBUG -   File "/usr/libexec/vyos/tests/smoke/cli/base_interfaces_test.py", line 109, in tearDown
05:47:04  DEBUG -     self.assertFalse(process_named_running(daemon))
05:47:04  DEBUG - AssertionError: 8769 is not false
05:47:04  DEBUG - 
05:47:04  DEBUG - ------------------

The smoketest seems suspect, the error line has nothing to do with this issue and running the smoketest several times results in tests passing/failing arbitrarily on that line (across multiple tests).

Viacheslav claimed this task.