`brctl setageing $bridge 0` fails on Ubuntu 16.04 4.4.0-21-generic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
os-vif |
Invalid
|
Undecided
|
Unassigned |
Bug Description
This leads to the following error when attempting to plug OVS VIFs:
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
Feb 16 09:31:57 host1.example.com nova-compute[
I'm able to reproduce this manually with:
# brctl addbr test
# brctl setageing test 0
set ageing time failed: Numerical result out of range
# dpkg --list | grep bridge-utils
ii bridge-utils 1.5-9ubuntu1 amd64 Utilities for configuring the Linux Ethernet bridge
# uname -a
Linux host1.example.com 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
I've glanced over the bridge-utils code but can't see anything obvious that could cause this, the actual error appears to be coming up from the kernel.
setting the bridge aging to 0 was introduced in /github. com/openstack/ os-vif/ commit/ fa4ff64b86e6e1b 6399f7250eadbee 9775c22d32 /bugs.launchpad .net/nova/ +bug/1715317 /bugs.launchpad .net/neutron/ +bug/1414559
https:/
to resolve https:/
and partially addresses https:/
so bassicaly the intent was to prevent mac adresses form expiring on the linux
bridges used for hybrid plug. it is not strictly required but should help prevent
packet loss during a live migration.
using the same version of bridge-utils but with a newer version of the ubuntu 16.04 lts kernel i cannot reproduce manually.
ubuntu@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-112-generic #135-Ubuntu SMP Fri Jan 19 11:48:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
my guess is that the kernel ioctl interfaces changed slightly between 4.4.0-21 and -112
setting the againg to 0 was intended to disable aging but perhaps that was not supported previously.
is this showing up in the ci or just localy. its not the end of the world if this call fails so we whould catch the exception and ignore/log it at debug level if it fails. there is no reason to fail plugging the vif if mac agging is not disabled.