Page MenuHomeVyOS Platform

The "arp-monitor" option in bonding interface settings does not work
Closed, ResolvedPublicBUG

Description

If we try to use the arp-monitor option in bonding interface, the commit will fail.

set interfaces bonding bond0 member interface eth2
set interfaces bonding bond0 member interface eth3
set interfaces bonding bond0 arp-monitor target 192.0.2.1

The error message:

[ interfaces bonding bond0 ]
VyOS had an issue completing a command.

We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
  https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
  https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
  https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
  https://vyos.slack.com

When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your 
  business policy requires it)
- and include all the information presented below

Report time:      2022-03-15 15:54:12
Image version:    VyOS 1.4-rolling-202203150317
Release train:    sagitta

Built by:         [email protected]
Built on:         Tue 15 Mar 2022 03:17 UTC
Build UUID:       9da98191-be0b-42e1-937a-97fb016b22ac
Build commit ID:  f2655e2ae72e8c

Architecture:     x86_64
Boot via:         installed image
System type:      KVM guest

Hardware vendor:  QEMU
Hardware model:   Standard PC (i440FX + PIIX, 1996)
Hardware S/N:     
Hardware UUID:    e0afcc7a-1709-4854-8c49-3951f1c24c85

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-bonding.py", line 210, in <module>
    verify(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-bonding.py", line 135, in verify
    if 'target' in bond['arp_monitor'] and len(int(bond['arp_monitor']['target'])) > 16:
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

Details

Difficulty level
Easy (less than an hour)
Version
1.4-rolling-202203150317
Why the issue appeared?
Implementation mistake
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

zsdc changed the task status from Open to In progress.Mar 15 2022, 4:32 PM
zsdc claimed this task.
zsdc moved this task from Need Triage to In Progress on the VyOS 1.4 Sagitta board.
zsdc changed Difficulty level from Unknown (require assessment) to Easy (less than an hour).Mar 15 2022, 4:32 PM
zsdc changed Why the issue appeared? from Will be filled on close to Implementation mistake.
zsdc changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.

The same issue with set interfaces bonding bond0 arp-monitor interval 'X' option. Also extra conversion between variable types.
Added the fix to the same PR.

VyOS 1.4-rolling-202204090217 works well.

1.3.0-rc6 has a problem:

vyos@vyos# set interfaces bonding bond0 member interface eth2
[edit]
vyos@vyos# set interfaces bonding bond0 member interface eth3
[edit]
vyos@vyos# set interfaces bonding bond0 arp-monitor target 192.0.2.1
[edit]
vyos@vyos# commit
[ interfaces bonding bond0 ]
VyOS had an issue completing a command.

We are sorry that you encountered a problem while using VyOS.
There are a few things you can do to help us (and yourself):
- Contact us using the online help desk if you have a subscription:
  https://support.vyos.io/
- Make sure you are running the latest version of VyOS available at:
  https://vyos.net/get/
- Consult the community forum to see how to handle this issue:
  https://forum.vyos.io
- Join us on Slack where our users exchange help and advice:
  https://vyos.slack.com

When reporting problems, please include as much information as possible:
- do not obfuscate any data (feel free to contact us privately if your
  business policy requires it)
- and include all the information presented below

Report Time:      2022-04-11 01:23:46
Image Version:    VyOS 1.3.0-rc6
Release Train:    equuleus

Built by:         Sentrium S.L.
Built on:         Sun 22 Aug 2021 15:37 UTC
Build UUID:       965518de-857d-4e61-ab09-381aadf24eb1
Build Commit ID:  75b37b28b2e9ab

Architecture:     x86_64
Boot via:         installed image
System type:      Unknown hypervisor guest

Hardware vendor:  QEMU
Hardware model:   Standard PC (i440FX + PIIX, 1996)
Hardware S/N:
Hardware UUID:    57889736-6379-48fc-a0ad-4ce09eb86e49

Traceback (most recent call last):
  File "/usr/libexec/vyos/conf_mode/interfaces-bonding.py", line 210, in <modul>
    verify(c)
  File "/usr/libexec/vyos/conf_mode/interfaces-bonding.py", line 135, in verify
    if 'target' in bond['arp_monitor'] and len(int(bond['arp_monitor']['target':
TypeError: int() argument must be a string, a bytes-like object or a number, no'



[[interfaces bonding bond0]] failed
Commit failed
[edit]