Bug 1130657 - vs_port fails with mismatched MAC addresses
Summary: vs_port fails with mismatched MAC addresses
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-puppet-modules
Version: 5.0 (RHEL 6)
Hardware: Unspecified
OS: Unspecified
high
urgent
Target Milestone: ga
: Installer
Assignee: Ivan Chavero
QA Contact: Ofer Blaut
URL:
Whiteboard:
: 1131497 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-08-15 19:37 UTC by John Eckersberg
Modified: 2014-12-15 15:48 UTC (History)
10 users (show)

Fixed In Version: openstack-puppet-modules-2014.1-20.2.el7ost
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-08-21 18:09:02 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:1090 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform Enhancement Advisory 2014-08-22 15:28:08 UTC
OpenStack gerrit 94504 None None None Never

Description John Eckersberg 2014-08-15 19:37:01 UTC
Description of problem:
The vs_port type in vswitch fails with the following error:

Error: /Stage[main]/Neutron::Agents::Ovs/Neutron::Plugins::Ovs::Port[br-ex:eth2]/Vs_port[eth2]/ensure: change from absent to present failed: Execution of '/usr/sbin/ifdown br-ex' returned 1: ERROR    : [/etc/sysconfig/network-scripts/ifdown-eth] Device br-ex has MAC address 7E:A5:F2:C7:67:40, instead of configured address 52:54:00:85:E3:43. Ignoring.

Additional relevant networking info:

[root@mac5254008803ab ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:88:03:ab brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.7/24 brd 192.168.200.255 scope global dynamic eth0
       valid_lft 363sec preferred_lft 363sec
    inet6 fe80::5054:ff:fe88:3ab/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:36:c6:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.201.178/24 brd 192.168.201.255 scope global dynamic eth1
       valid_lft 1980sec preferred_lft 1980sec
    inet6 fe80::5054:ff:fe36:c6da/64 scope link 
       valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 52:54:00:85:e3:43 brd ff:ff:ff:ff:ff:ff
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether f2:33:32:f0:79:20 brd ff:ff:ff:ff:ff:ff
6: br-int: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 26:1d:08:83:60:4e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::241d:8ff:fe83:604e/64 scope link 
       valid_lft forever preferred_lft forever
8: br-tun: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 7a:31:e2:a4:55:49 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7831:e2ff:fea4:5549/64 scope link 
       valid_lft forever preferred_lft forever
[root@mac5254008803ab ~]# ovs-vsctl list-br
br-int
br-tun
[root@mac5254008803ab ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth2 
DEVICE=eth2
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
[root@mac5254008803ab ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex 
HWADDR=52:54:00:85:E3:43
DEFROUTE=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth2
UUID=40fa7149-a06b-4b75-a1fb-8e1f3594ced3
ONBOOT=yes
PEERDNS=no
DEVICE=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO=dhcp
TYPE=OVSBridge
OVSDHCPINTERFACES=eth2
OVS_EXTRA="set bridge br-ex other-config:hwaddr=52:54:00:85:e3:43"


Version-Release number of selected component (if applicable):
openstack-puppet-modules-2014.1-20.1.el6ost.noarch

Comment 2 Ivan Chavero 2014-08-15 22:19:42 UTC
are you using packstack or stapuft?
Trying to reproduce in rhel6

Comment 3 John Eckersberg 2014-08-16 02:12:50 UTC
This was with staypuft on RHEL 6, deploying HA neutron+gre controllers on RHEL 7

Comment 4 John Eckersberg 2014-08-16 02:14:24 UTC
Oh also I forgot to add, downgrading to openstack-puppet-modules-2014.1-20.el6ost.noarch fixes the problem, so it's something in the v16 patch.

Comment 5 Gilles Dubreuil 2014-08-18 07:04:00 UTC
Just reproduced it as well using Packstack:

openstack-packstack-2014.1.1-0.37.dev1238.el7ost.noarch
openstack-puppet-modules-2014.1-20.1.el6ost.noarch

On bare metal, HWADDR parameter is usually present.
But it's absent by default on virtual guests.
It need to be added to reproduce it in virtualization environments:

------------------------
# ip addr show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:0f:f7:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.10/24 brd 192.168.99.255 scope global eth2
       valid_lft forever preferred_lft forever

# echo 'HWADDR=52:54:00:0F:F7:02' >> /etc/sysconfig/network-scripts/ifcfg-eth2
# ifdown eth2
# ifup eth2

# export controller_ip=192.168.98.10
# packstack --install-hosts=${controller_ip} \
          --nagios-install=n \
          --os-ceilometer-install=n \
          --os-neutron-install=y \
          --os-neutron-ovs-bridge-interfaces=br-ex:eth2 \
          --keystone-admin-passwd=redhat \
          --keystone-demo-passwd=redhat \
          --ssh-public-key=/root/.ssh/id_rsa.pub \
          --nagios-install=n \

...(snipped)...     
192.168.98.10_neutron.pp:                         [ ERROR ]         
Applying Puppet manifests                         [ ERROR ]

ERROR : Error appeared during Puppet run: 192.168.98.10_neutron.pp
Error: Execution of '/usr/sbin/ifdown br-ex' returned 1: ERROR    : [/etc/sysconfig/network-scripts/ifdown-eth] Device br-ex has MAC address 82:0F:1C:86:C0:4B, instead of configured address 52:54:00:78:AD:88. Ignoring.
...(snipped)...
------------------------

Comment 6 Gilles Dubreuil 2014-08-18 07:27:40 UTC
HWADDR stanza must be removed/commented out from interface configuration file before being allocated to OVS bridge.

This must be done before triggering Openstack (pack|quick)stack installations.
This could be used as workaround.

Newly upstream patch 17 addresses issue.

Comment 8 Alexander Chuzhoy 2014-08-18 18:26:15 UTC
Didn't reproduce with:
rhel-osp-installer-0.1.10-2.el6ost.noarch
openstack-foreman-installer-2.0.21-1.el6ost.noarch
ruby193-rubygem-foreman_openstack_simplify-0.0.6-8.el6ost.noarch
openstack-puppet-modules-2014.1-20.2.el6ost.noarch

Comment 9 Mike Burns 2014-08-19 14:27:51 UTC
*** Bug 1131497 has been marked as a duplicate of this bug. ***

Comment 11 Mike Burns 2014-08-20 14:00:52 UTC
*** Bug 1131497 has been marked as a duplicate of this bug. ***

Comment 12 Alexander Chuzhoy 2014-08-20 15:23:07 UTC
Verified: rhel-osp-installer-0.1.10-2.el6ost.noarch

openstack-foreman-installer-2.0.21-1.el6ost.noarch
ruby193-rubygem-foreman_openstack_simplify-0.0.6-8.el6ost.noarch
openstack-puppet-modules-2014.1-20.2.el6ost.noarch

The deployment has completed successfulyl with no errros.

Comment 13 errata-xmlrpc 2014-08-21 18:09:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-1090.html

Comment 14 Ramon Acedo 2014-08-25 14:53:46 UTC
I'm seeing this with the latest packages on eth2 when deploying with neutron and eth2 as external interface:

rhel-osp-installer-0.1.10-2.el6ost.noarch
openstack-foreman-installer-2.0.21-1.el6ost.noarch
ruby193-rubygem-foreman_openstack_simplify-0.0.6-8.el6ost.noarch
openstack-puppet-modules-2014.1-20.2.el6ost.noarch

As described in previous comments, a manual puppet agent -t after it solves it.

These are the logs:

Aug 25 14:30:43 neutron ovs-vsctl: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl add-br br-ex
Aug 25 14:30:43 neutron kernel: device br-ex entered promiscuous mode
Aug 25 14:30:43 neutron puppet-agent[3243]: (/Stage[main]/Neutron::Agents::Ovs/Neutron::Plugins::Ovs::Bridge[physnet-external:br-ex]/Vs_bridge[br-ex]/ensure) created
Aug 25 14:30:43 neutron ovs-vsctl: ovs|00001|vsctl|INFO|Called as /usr/bin/ovs-vsctl add-port br-ex eth2
Aug 25 14:30:43 neutron kernel: device eth2 entered promiscuous mode
Aug 25 14:30:43 neutron ovs-vsctl: ovs|00001|vsctl|INFO|Called as ovs-vsctl -t 10 -- --if-exists del-port br-ex eth2
Aug 25 14:30:43 neutron kernel: device eth2 left promiscuous mode
Aug 25 14:30:43 neutron puppet-agent[3243]: Execution of '/usr/sbin/ifdown eth2' returned 1:
Aug 25 14:30:43 neutron puppet-agent[3243]: (/Stage[main]/Neutron::Agents::Ovs/Neutron::Plugins::Ovs::Port[br-ex:eth2]/Vs_port[eth2]/ensure) change from absent to present failed: Execution of '/usr/sbin/ifdown eth2' returned 1:

Comment 15 Gilles Dubreuil 2014-08-26 11:22:40 UTC
It seems the ifdown/ifup on the interface/bridge doesn't always works on RHEL6.

Please create a new BZ accordingly.


Note You need to log in before you can comment on or make changes to this bug.