RDO tickets are now tracked in Jira https://issues.redhat.com/projects/RDO/issues/
Bug 1153128 - Cannot start nova-network on juno - Centos7
Summary: Cannot start nova-network on juno - Centos7
Keywords:
Status: CLOSED EOL
Alias: None
Product: RDO
Classification: Community
Component: openstack-packstack
Version: unspecified
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
: Juno
Assignee: Martin Magr
QA Contact: Ofer Blaut
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-10-15 16:11 UTC by Bruno Bompastor
Modified: 2016-05-19 15:54 UTC (History)
14 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-05-19 15:54:40 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1376596 0 None None None Never
Launchpad 1477681 0 None None None Never
OpenStack gerrit 206982 0 None None None Never

Description Bruno Bompastor 2014-10-15 16:11:20 UTC
Hi!

I was testing packstack --allinone on "RDO test day Juno milestone 3" and i cannot start nova-network.

OS: CentOS7
Openstack version: juno-1
Packstack cmd: packstack --allinone --os-neutron-install=n --os-heat-cfn-install=y --os-heat-install=y --use-epel=y

Error:

2014-10-01 18:17:53.853 6108 AUDIT nova.service [-] Starting network node (version 2014.2-0.4.b3.el7.centos)
2014-10-01 18:17:54.055 6108 ERROR nova.openstack.common.threadgroup [-] Failed to add interface: can't add lo to bridge br100: Invalid argument
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 125, in wait
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup x.wait()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line 47, in wait
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return self.thread.wait()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 173, in wait
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return self._exit_event.wait()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 121, in wait
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return hubs.get_hub().switch()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 293, in switch
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return self.greenlet.switch()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 212, in main
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup result = function(*args, **kwargs)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 492, in run_service
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup service.start()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/service.py", line 164, in start
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup self.manager.init_host()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/manager.py", line 1776, in init_host
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup super(FlatDHCPManager, self).init_host()
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/manager.py", line 334, in init_host
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup self._setup_network_on_host(ctxt, network)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/manager.py", line 1785, in _setup_network_on_host
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup self._initialize_network(network)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/manager.py", line 1451, in _initialize_network
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup self.l3driver.initialize_gateway(network)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/l3.py", line 105, in initialize_gateway
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup gateway=(network_ref['gateway'] is not None))
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/linux_net.py", line 1411, in plug
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return _get_interface_driver().plug(network, mac_address, gateway)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/linux_net.py", line 1460, in plug
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup network, gateway)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/openstack/common/lockutils.py", line 325, in inner
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup return f(*args, **kwargs)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup File "/usr/lib/python2.7/site-packages/nova/network/linux_net.py", line 1575, in ensure_bridge
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup raise exception.NovaException(msg)
2014-10-01 18:17:54.055 6108 TRACE nova.openstack.common.threadgroup NovaException: Failed to add interface: can't add lo to bridge br100: Invalid argument

Comment 1 Bruno Bompastor 2014-10-15 16:16:08 UTC
Basically the parameter flat_interface=lo is wrong. If you comment this parameter on nova.conf it takes 'lo' as default. The only way to overcome this is by forcing empty string for the interface on the code.

        interface = ''
        if interface:
            msg = _('Adding interface %(interface)s to bridge %(bridge)s')
            LOG.debug(msg, {'interface': interface, 'bridge': bridge})
            out, err = _execute('brctl', 'addif', bridge, interface,
                                check_exit_code=False, run_as_root=True)
            if (err and err != "device %s is already a member of a bridge; "
                     "can't enslave it to bridge %s.\n" % (interface, bridge)):
                msg = _('Failed to add interface: %s') % err
                raise exception.NovaException(msg)

            out, err = _execute('ip', 'link', 'set', interface, 'up',
                                check_exit_code=False, run_as_root=True)

Comment 2 Bruno Bompastor 2014-10-15 16:18:42 UTC
I can also reproduce this on:
openstack-nova-network.noarch               2014.2-0.7.rc2.el7.centos  @openstack-juno

Comment 3 Bruno Bompastor 2014-10-16 08:15:32 UTC
I opened a bug (https://bugs.launchpad.net/nova/+bug/1376596) before on upstream but it was rejected as a misconfiguration. So maybe it should be changed on the puppet module...

Comment 4 Alan Pevec (Fedora) 2015-07-21 11:22:20 UTC
What's the conclusion here?
Is it nova, puppet-nova or packstack issue?
AFAICT this only affects allinone, so workaround could be force neutron networking for allinone?

Comment 5 Bruno Bompastor 2015-07-21 12:21:56 UTC
I think the fix should come from nova.... But if that is not the case packstack should put in place the workaround on this bug https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1153079 to fix this.

Basically create a dummy interface and fix the allinone configuration to change the loopback to the newly created dummy interface.

Comment 6 Brent Eagles 2015-07-21 19:40:48 UTC
The bug is in how packstack configures allinone for nova networking. The private interfaces should be empty for allinone. Bridging lo is kind of bogus and completely unnecessary for allinone. I believe this should be reassigned to packstack.

Comment 7 Brent Eagles 2015-07-21 20:08:17 UTC
Ah, just realized it IS assigned to packstack. 

An additional note, the 'lo' is set in single_step_aio_install() in installer/run_setup.py. Unfortunately, just changing or removing those lines doesn't do what's required - it reverts to the internal default of eth1. As an aside, you cannot set it the *_PRIVIF to an empty value in the answer file either - which is wrong. A more successful approach would be for the PRIVIF's to default to empty and then only validate for empty if multiple compute nodes are specified - in which event not providing an actual physical network for "private" tenant traffic would be an error.

Comment 8 Brent Eagles 2015-07-23 16:59:43 UTC
Added new upstream BZ against packstack.

Comment 9 Mike McCune 2016-03-28 23:08:19 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

Comment 10 Chandan Kumar 2016-05-19 15:54:40 UTC
This bug is against a Version which has reached End of Life.
If it's still present in supported release (http://releases.openstack.org), please update Version and reopen.


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