nova-compute cannot brctl addif br100 to the correct interface

Bug #944734 reported by Han Li on 2012-03-02
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
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.

Node-2 is the compute nodes, only the nova-compute is installed.

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''})], 'version': 4, 'meta': {u'dhcp_server': u''}, 'dns': [IP({'meta': {}, 'version': 4, 'type': u'dns', 'address': u''})], 'routes': [], 'cidr': u'', 'gateway': IP({'meta': {}, 'version': 4, 'type': u'gateway', 'address': u''})}), 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/

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/

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

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) on 2012-03-20
Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2012-04-05
Changed in nova:
milestone: essex-rc1 → 2012.1
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers