← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1220856] Re: libvirt error when create VM with 2 NICs under DevStack

 

** Changed in: nova/icehouse
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1220856

Title:
  libvirt error when create VM with 2 NICs under DevStack

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) icehouse series:
  Fix Released

Bug description:
  Under a stock DevStack setup on bare metal, I started stack.sh, which
  creates a public network (w/o DHCP) and a private network (with DHCP)
  and a router.  On the host I created a br-ex and added eth3 to the
  bridge. The public network is connected via a physical switch, to
  another host (also running Devstack).

  I am able to create VMs, and ping between them, and I can also (with
  the new VPNaaS feature under development) ping VMs over the public
  (provider?) network.

  If I create a VM (seen this with cirros and others) and specify the
  private network, or create a VM with the public network, they launch
  fine. However, if I try to boot an instance with two NICs, the launch
  fails:

   localnet=`neutron net-list | grep private | cut -f 2 -d'|' | cut -f 2 -d' '`
   nova boot --image cirros-0.3.1-x86_64-uec --flavor 1 mary --nic net-id=$localnet
   
  pubnet=`neutron net-list | grep public | cut -f 2 -d'|' | cut -f 2 -d' '`
  nova boot --image cirros-0.3.1-x86_64-uec --flavor 1 peter --nic net-id=$pubnet

  nova boot --image cirros-0.3.1-x86_64-uec --flavor 1 paul --nic net-
  id=$localnet --nic net-id=$pubnet

  nova list
  +--------------------------------------+-------+--------+------------+-------------+---------------------+
  | ID                                   | Name  | Status | Task State | Power State | Networks            |
  +--------------------------------------+-------+--------+------------+-------------+---------------------+
  | 0fc9c41c-fcd7-45a8-ae10-568b506a331f | mary  | ACTIVE | None       | Running     | private=10.2.0.4    |
  | 76925e14-a0b7-4285-9197-5ff0e92f5bb4 | paul  | ERROR  | None       | NOSTATE     |                     |
  | c8cd45a4-10d9-4d8c-9a5a-f806e63683c0 | peter | ACTIVE | None       | Running     | public=172.24.4.235 |
  +--------------------------------------+-------+--------+------------+-------------+---------------------+

  Looking at the logs, I see that the screen-n-cpu.log reports an error
  and has a traceback:

  2013-09-04 18:01:47.963 ERROR nova.compute.manager [req-187bbd89-f40d-4637-b549-0edfc9b66419 admin admin] [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4] Instance failed to spawn
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4] Traceback (most recent call last):
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/opt/stack/nova/nova/compute/manager.py", line 1293, in _spawn
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     block_device_info)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1699, in spawn
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     block_device_info)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2697, in _creat\
  e_domain_and_network
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     domain = self._create_domain(xml, instance=instance, power_on=power_on\
  )
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2652, in _creat\
  e_domain
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     domain.XMLDesc(0))
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2647, in _creat\
  e_domain
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     domain.createWithFlags(launch_flags)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 17\
  9, in doit
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     result = proxy_call(self._autowrap, f, *args, **kwargs)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 13\
  9, in proxy_call
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     rv = execute(f,*args,**kwargs)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/usr/local/lib/python2.7/dist-packages/eventlet/tpool.py", line 77\
  , in tworker
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     rv = meth(*args,**kwargs)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]   File "/usr/lib/python2.7/dist-packages/libvirt.py", line 581, in createW\
  ithFlags
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4]     if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed',\
   dom=self)
  2013-09-04 18:01:47.963 9855 TRACE nova.compute.manager [instance: 76925e14-a0b7-4285-9197-5ff0e92f5bb4] libvirtError: internal error Cannot instantiate filter due to unresolvable\
   variables: DHCPSERVER

  There is no DHCP server on the public network, but there is one on the
  local network.

  This is consistently reproducible and occurs with other image types.

  The nova code is off the master branch (havana) with the SHA1 of
  86c97ff from 6 days ago.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1220856/+subscriptions