[Bug 1799737] Re: l3 agent external_network_bridge broken with ovs
Edward Hope-Morley
edward.hope-morley at canonical.com
Fri Mar 27 11:18:35 UTC 2020
@axino I assume the environment you have that is using
external_network_bridge/external_network_id is quite old and was
originally deployed with a version older than Queens? Using these option
to configure external networks is really deprecated and since at least
Juno we have used bridge_mappings for this purpose (and to allow > 1
external network). There is an annoying quirk here though (and perhaps
this is why you have not switched) which is that with the old way the
network will likely not have a provider name (in the db) and therefore
migrating it as-is to a bridge_mappings type config will break the
network (unless perhaps one can be set manually in the database).
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to neutron in Ubuntu.
https://bugs.launchpad.net/bugs/1799737
Title:
l3 agent external_network_bridge broken with ovs
Status in neutron:
Confirmed
Status in neutron package in Ubuntu:
Confirmed
Bug description:
Hi,
I'm running queens on xenial. The following commit introduced a
regression :
https://git.openstack.org/cgit/openstack/neutron/commit/?id=2b1d413ee90dfe2e9ae41c35ab37253df53fc6cd
(fixing bug 1767422)
The following call is wrong (in router_info.py) :
self.driver.remove_vlan_tag(self.agent_conf.external_network_bridge,
interface_name)
In this call, interface_name is something like "qg-abcdefg-12", but
remove_vlan_tag() expects a tap interface. This results in the
following log :
2018-10-24 00:28:40.880 23623 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Running txn command(idx=0): DbClearCommand(column=tag, table=Port, record=qg-0410dbf1-51) do_commit /usr/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:84
2018-10-24 00:28:40.881 23623 DEBUG ovsdbapp.backend.ovs_idl.transaction [-] Transaction aborted do_commit /usr/lib/python2.7/dist-packages/ovsdbapp/backend/ovs_idl/transaction.py:112
Sadly, the cause of the "Transaction aborted" is hidden (in https://github.com/openstack/ovsdbapp/blob/master/ovsdbapp/backend/ovs_idl/transaction.py#L87). If I print the exception, I get the following :
2018-10-24 00:28:40.881 23623 DEBUG
ovsdbapp.backend.ovs_idl.transaction [-] EXCEPTION Cannot find Port
with name=qg-0410dbf1-51 do_commit /usr/lib/python2.7/dist-
packages/ovsdbapp/backend/ovs_idl/transaction.py:88
Checking the ovs database reveals that Port "names" are the tap interfaces, not the qg- interfaces. The ports staying the VLAN 4095 will basically make the network unusable. Using the following call fixes my problem :
self.driver.remove_vlan_tag(self.agent_conf.external_network_bridge,
self.driver._get_tap_name(interface_name,prefix=EXTERNAL_DEV_PREFIX))
It would be nice to print the exception caught in
https://github.com/openstack/ovsdbapp/blob/master/ovsdbapp/backend/ovs_idl/transaction.py#L87
by the way...
Thanks !
For reference :
$ dpkg -l|grep neutron
ii neutron-common 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - common
ii neutron-dhcp-agent 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - DHCP agent
ii neutron-l3-agent 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - l3 agent
ii neutron-lbaas-common 2:12.0.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - common
ii neutron-lbaasv2-agent 2:12.0.0-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - LBaaSv2 agent
ii neutron-metadata-agent 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - metadata agent
ii neutron-metering-agent 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - metering agent
ii neutron-openvswitch-agent 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - Open vSwitch plugin agent
ii python-neutron 2:12.0.3-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - Python library
ii python-neutron-fwaas 1:12.0.0-0ubuntu1~cloud0 all Firewall-as-a-Service driver for OpenStack Neutron
ii python-neutron-lbaas 2:12.0.0-0ubuntu1~cloud0 all Loadbalancer-as-a-Service driver for OpenStack Neutron
ii python-neutron-lib 1.13.0-0ubuntu1~cloud0 all Neutron shared routines and utilities - Python 2.7
ii python-neutronclient 1:6.7.0-0ubuntu1~cloud0 all client API library for Neutron - Python 2.7
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1799737/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list