The use_veth_interconnection config doesn't work fine

Bug #1622850 reported by Hirofumi Ichihara
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Hirofumi Ichihara

Bug Description

The use_veth_interconnection config doesn't work fine because IPDevice is passed into OVSBridge's add_port() although the method expects port_name.

* current wrong codes
int_ofport = self.int_br.add_port(int_veth)
phys_ofport = br.add_port(phys_veth)

* expecting codes
int_ofport = self.int_br.add_port(int_if_name)
phys_ofport = br.add_port(phys_if_name)

This issue doesn't happen in a case using ovs-vsctl because IPDevice has __str__() overridden (returns device name). However, In a case using native(ryu app), the issue happens.

* log
Timed out retrieving ofport on port phy-br-eth1.
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib Traceback (most recent call last):
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib File "/opt/stack/neutron/neutron/agent/common/ovs_lib.py", line 286, in get_port_ofport
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib ofport = self._get_port_ofport(port_name)
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib File "/opt/stack/neutron/neutron/agent/common/ovs_lib.py", line 92, in wrapped
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib return new_fn(*args, **kwargs)
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib File "/usr/local/lib/python2.7/dist-packages/retrying.py", line 49, in wrapped_f
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib return Retrying(*dargs, **dkw).call(f, *args, **kw)
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib File "/usr/local/lib/python2.7/dist-packages/retrying.py", line 214, in call
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib raise RetryError(attempt)
2016-09-13 08:54:16.854 TRACE neutron.agent.common.ovs_lib RetryError: RetryError[Attempts: 16, Value: None]

Actually I saw there is no phy-br-eth1 device in my env and then the interface is created after I have fixed above.

Changed in neutron:
assignee: nobody → Hirofumi Ichihara (ichihara-hirofumi)
importance: Undecided → High
tags: added: liberty-backport-potential mitaka-backport-potential ovs
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/369160

Changed in neutron:
status: New → In Progress
description: updated
Changed in neutron:
milestone: none → newton-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/369160
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=951cd80c341fdc2783c8e3042a9e93becab58e36
Submitter: Jenkins
Branch: master

commit 951cd80c341fdc2783c8e3042a9e93becab58e36
Author: Hirofumi Ichihara <email address hidden>
Date: Tue Sep 13 15:04:52 2016 +0900

    Pass not IPDevice but port_name into OVSBridge's add_port()

    The use_veth_interconnection config doesn't work fine because
    IPDevice is passed into OVSBridge's add_port() although the method
    expects port_name. This patch fixes the wrong argument.

    Change-Id: I6ea3e37d857f34228c41118709b91f4407555a33
    Closes-Bug: #1622850

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/mitaka)

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/369791

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/369794

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 9.0.0.0rc1

This issue was fixed in the openstack/neutron 9.0.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/mitaka)

Reviewed: https://review.openstack.org/369791
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=207cd3affdc4b4a2ea558c312396a776e45edad3
Submitter: Jenkins
Branch: stable/mitaka

commit 207cd3affdc4b4a2ea558c312396a776e45edad3
Author: Hirofumi Ichihara <email address hidden>
Date: Tue Sep 13 15:04:52 2016 +0900

    Pass not IPDevice but port_name into OVSBridge's add_port()

    The use_veth_interconnection config doesn't work fine because
    IPDevice is passed into OVSBridge's add_port() although the method
    expects port_name. This patch fixes the wrong argument.

    Conflicts:
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_tunnel.py

    Change-Id: I6ea3e37d857f34228c41118709b91f4407555a33
    Closes-Bug: #1622850
    (cherry picked from commit 951cd80c341fdc2783c8e3042a9e93becab58e36)

tags: added: in-stable-mitaka
tags: removed: liberty-backport-potential mitaka-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 8.3.0

This issue was fixed in the openstack/neutron 8.3.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (stable/liberty)

Change abandoned by Ihar Hrachyshka (<email address hidden>) on branch: stable/liberty
Review: https://review.openstack.org/369794
Reason: Liberty is in CVE only mode.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 9.0.0.0rc1

This issue was fixed in the openstack/neutron 9.0.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 8.3.0

This issue was fixed in the openstack/neutron 8.3.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.