[Bug 1799737] [NEW] l3 agent external_network_bridge broken with ovs

Junien Fridrick 1799737 at bugs.launchpad.net
Wed Oct 24 15:53:33 UTC 2018


Public bug reported:

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

** Affects: neutron (Ubuntu)
     Importance: Undecided
         Status: New

-- 
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 package in Ubuntu:
  New

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/ubuntu/+source/neutron/+bug/1799737/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list