Page MenuHomeVyOS Platform

netplug: PermissionError on fast interface changes
Closed, ResolvedPublicBUG

Description

Using the following script to "stress" VyOS

#!/usr/bin/vbash
source /opt/vyatta/etc/functions/script-template
configure

while true
do
  set interfaces bonding bond0 member interface eth1
  set interfaces bonding bond0 evpn es-id 5
  set interfaces bonding bond0 evpn es-df-pref 5
  set interfaces bonding bond0 evpn es-sys-mac 00:12:34:56:78:05
  set interfaces bonding bond0 evpn uplink
  commit

  if vtysh -c "show run no-header" | sed -n "/^interface bond0$/,/^exit/p" | grep -q "evpn mh es-id 5"; then
    delete interfaces bonding
    commit
  else
    vtysh -c "show run no-header"
    break
  fi

  sleep 4
done

Will throw an error:

Apr 10 16:30:18 python3[4296]: Report time:      2025-04-10 16:30:18
Apr 10 16:30:18 python3[4296]: Image version:    VyOS 2025.04.06-1212-kernelU-frrU
Apr 10 16:30:18 python3[4296]: Release train:    current
Apr 10 16:30:18 python3[4296]: Built by:         [email protected]
Apr 10 16:30:18 python3[4296]: Built on:         Sun 06 Apr 2025 14:13 UTC
Apr 10 16:30:18 python3[4296]: Build UUID:       09eae876-795c-49a1-8ec1-fe941d9fb173
Apr 10 16:30:18 python3[4296]: Build commit ID:  1b00253bb1885a-dirty
Apr 10 16:30:18 Architecture[4296]:     x86_64
Apr 10 16:30:18 python3[4296]: Boot via:         installed image
Apr 10 16:30:18 python3[4296]: System type:      KVM guest
Apr 10 16:30:18 python3[4296]: Hardware vendor:  QEMU
Apr 10 16:30:18 python3[4296]: Hardware model:   Standard PC (i440FX + PIIX, 1996)
Apr 10 16:30:18 python3[4296]: Hardware S/N:
Apr 10 16:30:18 python3[4296]: Hardware UUID:    423f6773-77df-c480-42c9-42afff15de0b
Apr 10 16:30:18 python3[4296]: Traceback (most recent call last):
Apr 10 16:30:18 python3[4296]:   File "/etc/netplug/vyos-netplug-dhcp-client", line 57, in <module>
Apr 10 16:30:18 python3[4296]:     Interface(interface).update(interface_config)
Apr 10 16:30:18 python3[4296]:     ^^^^^^^^^^^^^^^^^^^^
Apr 10 16:30:18 python3[4296]:   File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 341, in __init__
Apr 10 16:30:18 python3[4296]:     self._create()
Apr 10 16:30:18 python3[4296]:   File "/usr/lib/python3/dist-packages/vyos/ifconfig/interface.py", line 362, in _create
Apr 10 16:30:18 python3[4296]:     self._cmd(cmd)
Apr 10 16:30:18 python3[4296]:   File "/usr/lib/python3/dist-packages/vyos/ifconfig/control.py", line 64, in _cmd
Apr 10 16:30:18 python3[4296]:     return cmd(command, self.debug, env=env)
Apr 10 16:30:18 python3[4296]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 10 16:30:18 python3[4296]:   File "/usr/lib/python3/dist-packages/vyos/utils/process.py", line 187, in cmd
Apr 10 16:30:18 python3[4296]:     raise OSError(code, feedback)
Apr 10 16:30:18 PermissionError[4296]: [Errno 1] failed to run command:  ip link add dev bond0
Apr 10 16:30:18 returned[4296]:
Apr 10 16:30:18 python3[4296]: exit code: 1
Apr 10 16:30:18 noteworthy[4296]:
Apr 10 16:30:18 python3[4296]: cmd 'ip link show dev bond0'
Apr 10 16:30:18 python3[4296]: returned (out):
Apr 10 16:30:18 python3[4296]: returned (err):
Apr 10 16:30:18 python3[4296]: Device "bond0" does not exist.
Apr 10 16:30:18 python3[4296]: cmd 'ip link show dev bond0'
Apr 10 16:30:18 python3[4296]: returned (out):
Apr 10 16:30:18 python3[4296]: returned (err):
Apr 10 16:30:18 python3[4296]: Device "bond0" does not exist.
Apr 10 16:30:18 python3[4296]: cmd 'ip link add dev bond0'
Apr 10 16:30:18 python3[4296]: returned (out):
Apr 10 16:30:18 python3[4296]: returned (err):

The netplug helper script is called with:

interface = bond0
in_out = in
interface_path = ['interfaces', 'bonding', 'bond0']
interface_config = {'deleted': {}, 'ifname': 'bond0'}

Details

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