neutron-ovs-cleanup failing to start with ovs bonding
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
yalei wang |
Bug Description
System is running Openstack Kilo:
[root@network01 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@network01 ~]# uname -r
3.10.0-
[root@network01 ~]# rpm -qa|grep neutron
openstack-
openstack-
openstack-
python-
python-
openstack-
Issue is with python-
/usr/lib/
get_vif_ports function is expecting that each ovs port will have an interface with a matching name, i.e. ovs port eth0 must have ovs Interface with name eth0. This does not work for bonded interfaces created within ovs as port bond2 may have Interface eth0 and Interface eth1 as an example.
2015-05-29 16:53:06.034 2833 INFO neutron.
2015-05-29 16:53:06.039 2833 INFO neutron.
2015-05-29 16:53:06.502 2833 ERROR neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.502 2833 TRACE neutron.
2015-05-29 16:53:06.503 2833 CRITICAL neutron [-] RuntimeError:
Command: ['sudo', 'neutron-rootwrap', '/etc/neutron/
Exit code: 1
Stdin:
Stdout:
Stderr: ovs-vsctl: no row "bond2" in table Interface
2015-05-29 16:53:06.503 2833 TRACE neutron Traceback (most recent call last):
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/bin/
2015-05-29 16:53:06.503 2833 TRACE neutron sys.exit(main())
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron ports = collect_
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron ports += [port.port_name for port in ovs.get_
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron check_error=True)
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron check_error=
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron txn.add(self)
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron self.result = self.commit()
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron res = self.run_
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron ctxt.reraise = False
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron six.reraise(
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron log_fail_
2015-05-29 16:53:06.503 2833 TRACE neutron File "/usr/lib/
2015-05-29 16:53:06.503 2833 TRACE neutron raise RuntimeError(m)
2015-05-29 16:53:06.503 2833 TRACE neutron RuntimeError:
2015-05-29 16:53:06.503 2833 TRACE neutron Command: ['sudo', 'neutron-rootwrap', '/etc/neutron/
2015-05-29 16:53:06.503 2833 TRACE neutron Exit code: 1
2015-05-29 16:53:06.503 2833 TRACE neutron Stdin:
2015-05-29 16:53:06.503 2833 TRACE neutron Stdout:
2015-05-29 16:53:06.503 2833 TRACE neutron Stderr: ovs-vsctl: no row "bond2" in table Interface
2015-05-29 16:53:06.503 2833 TRACE neutron
2015-05-29 16:53:06.503 2833 TRACE neutron
ovs_lib.py should be updated so that for an ovs bond port all interfaces belonging to the bond are looked up without relying on the name of the Interface to be matching.
description: | updated |
Changed in neutron: | |
assignee: | nobody → yalei wang (yalei-wang) |
Changed in neutron: | |
importance: | Undecided → Medium |
Changed in neutron: | |
status: | In Progress → Fix Released |
A work around is to configure standard linux bonding, then add linux bond interface as an ovs port (rather than creating bond within openvswitch).