nova-compute cannot brctl addif br100 to the correct interface

Bug #944734 reported by Han Li
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Vish Ishaya

Bug Description

When the machine that runs nova-compute has a different network interface (e.g. eth2) from the machine that runs nova-network (e.g. eth1), nova-compute binds br100 to the same interface as nova-network.

To illustrate, I present my own setup.

Node-1 is the control node. Installed all the nova packages except nova-compute.
--flat_network_bridge=br100
--flat_interface=eth1

Node-2 is the compute nodes, only the nova-compute is installed.
--flat_network_bridge=br100
--flat_interface=eth4

The correct setup is that br100 binds to eth1 on Node-1, and on Node-2 br100 binds to eth4.

In fact, however, nova.compute.manager learns from somewhere (database, or via message) that the 'bridge_interface' should be 'eth1'. Below is the log message from nova-compute.log.

I solved this problem by binding br100 to eth4 in /etc/network/interfaces. As a result, both eth1 and eth4 are connected to br100 when nova-compute is running.

Anyone who has different network interface names on two machines can re-produce this problem.

Is this a real bug, or did I miss something in the config?

2012-03-02 21:16:11 DEBUG nova.compute.manager [-] [instance: 1c614b9e-8970-40d9-8fbd-8fed6d665e55] Instance network_info: |[VIF({'network': Network({'bridge': u'br100', 'subnets': [Subnet({'ips': [FixedIP({'meta': {}, 'version': 4, 'type': u'fixed', 'floating_ips': [], 'address': u'10.10.1.3'})], 'version': 4, 'meta': {u'dhcp_server': u'10.10.1.1'}, 'dns': [IP({'meta': {}, 'version': 4, 'type': u'dns', 'address': u'8.8.4.4'})], 'routes': [], 'cidr': u'10.10.1.0/24', 'gateway': IP({'meta': {}, 'version': 4, 'type': u'gateway', 'address': u'10.10.1.1'})}), Subnet({'ips': [], 'version': None, 'meta': {u'dhcp_server': None}, 'dns': [], 'routes': [], 'cidr': None, 'gateway': IP({'meta': {}, 'version': None, 'type': u'gateway', 'address': None})})], 'meta': {u'tenant_id': None, u'should_create_bridge': True, u'bridge_interface': u'eth1'}, 'id': u'2b5b6a00-ab77-441c-8fda-476d1926c050', 'label': u'private'}), 'meta': {}, 'id': u'a7cb09dc-4337-4f03-ac53-1b36dc21ff0e', 'address': u'02:16:3e:4c:20:d6'})]| from (pid=28281) _allocate_network /usr/lib/python2.7/dist-packages/nova/compute/manager.py:567

2012-03-02 21:16:11 DEBUG nova.utils [-] Running cmd (subprocess): sudo nova-rootwrap brctl addif br100 eth1 from (pid=28281) execute /usr/lib/python2.7/dist-packages/nova/utils.py:211

Revision history for this message
Vish Ishaya (vishvananda) wrote :

the patch for bug 833426 fixed this for vlan mode, but we never put in a fix for flat network mode.

Changed in nova:
status: New → In Progress
assignee: nobody → Vish Ishaya (vishvananda)
importance: Undecided → Medium
milestone: none → essex-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/4845
Committed: http://github.com/openstack/nova/commit/eea6aecf4ad18108e35cf86ab1be7e98e748fca6
Submitter: Jenkins
Branch: master

commit eea6aecf4ad18108e35cf86ab1be7e98e748fca6
Author: Vishvananda Ishaya <email address hidden>
Date: Fri Mar 2 15:16:34 2012 -0800

    Allows --flat_interface flag to override db

     * this replicates what commit 8efe15209 did for vlan_interface
     * includes a test to verify that the override works
     * cleans up memory usage in the vlan test
     * Fixes bug 944734

    Change-Id: I21a04a43051f723029513c4c9548003f959cff37

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: essex-rc1 → 2012.1
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.