← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1328546] Re: Race condition when hard rebooting instance

 

The race condition still exists.

Neutron happens to delete the bridge [1] between plug_vifs
(ensure_bridge) [2] and _create_domain [3] if your instance is the only
one using the bridge.

I locally fix it by disabling remove_empty_bridges and using a cron to
delete empty bridges instead.

[1] https://github.com/openstack/neutron/blob/6cf92011143eb55adda180ffac91886566fc7826/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py#L926
[2] https://github.com/openstack/nova/blob/f9e664f1b6521dd7d5c02cd803e376e8abdf9c30/nova/virt/libvirt/driver.py#L4383
[3] https://github.com/openstack/nova/blob/f9e664f1b6521dd7d5c02cd803e376e8abdf9c30/nova/virt/libvirt/driver.py#L4390

** Changed in: neutron
       Status: Invalid => New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1328546

Title:
  Race condition when hard rebooting instance

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  Condition for this to happen:
  ======================

  1. Agent: neutron-linuxbridge-agent.
  2. Only 1 instance is running  on the hypervisor that belong to this network.
  3. Timing, it's a race condition after all ;-)

  Remarked behavior:
  ================

  After hard reboot instance end up in ERROR state and the nova-compute
  log an error saying that:

      Cannot get interface MTU on 'brqf9d0e8cf-bd': No such device

  What happen:
  ===========

  When nova do a hard reboot, the instance is first destroyed,  which
  imply that the tap device is deleted from the linux bridge (which
  result to an empty bridge b/c of 2 condition above), than re-created
  afterward, but in between neutron-linuxbridge-agent may clean up this
  empty bridge as part of his remove_empty_bridges()[1], but for this
  error to happen neutron-linuxbridge-agent should do that after
  plug_vifs()[2] and before domain.createWithFlags() finish.

  [1]: https://github.com/openstack/neutron/blob/stable/icehouse/neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py#L449.
  [2]: https://github.com/openstack/nova/blob/stable/icehouse/nova/virt/libvirt/driver.py#L3648-3656

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


References