← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1190026] Re: xenapi network info injection is racey

 

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

** Changed in: nova
    Milestone: None => havana-2

-- 
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/1190026

Title:
  xenapi network info injection is racey

Status in OpenStack Compute (Nova):
  Fix Released

Bug description:
  Xenapi's vmops.py:inject_network_info() is racey.  If 2 network
  updates are happening at the same time, this can be raised:

  ['MAP_DUPLICATE_KEY', 'VM', 'xenstore_data', 'OpaqueRef:<REF>', 'vm-data/networking/<MACADDR>']
    File "/opt/nova/lib/python2.6/site-packages/nova/compute/manager.py", line 234, in decorated_function
      return function(self, context, *args, **kwargs)
    File "/opt/nova/lib/python2.6/site-packages/nova/compute/manager.py", line 2755, in add_fixed_ip_to_instance
      network_info = self._inject_network_info(context, instance=instance)
    File "/opt/nova/lib/python2.6/site-packages/nova/compute/manager.py", line 2916, in _inject_network_info
      self._legacy_nw_info(network_info))
    File "/opt/nova/lib/python2.6/site-packages/nova/virt/xenapi/driver.py", line 290, in inject_network_info
      self._vmops.inject_network_info(instance, network_info)
    File "/opt/nova/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 1641, in inject_network_info
      jsonutils.dumps(xs_data))
    File "/opt/nova/lib/python2.6/site-packages/nova/virt/xenapi/vmops.py", line 1813, in _add_to_param_xenstore
      self._session.call_xenapi('VM.add_to_xenstore_data', vm_ref, key, val)
    File "/opt/nova/lib/python2.6/site-packages/nova/virt/xenapi/driver.py", line 723, in call_xenapi
      return session.xenapi_request(method, args)
    File "/opt/nova/lib/python2.6/site-packages/XenAPI.py", line 133, in xenapi_request
      result = _parse_result(getattr(self, methodname)(*full_params))
    File "/opt/nova/lib/python2.6/site-packages/XenAPI.py", line 203, in _parse_result
      raise Failure(result['ErrorDescription'])

  There's a 'remove' and then a 'add' in _add_to_param_xenstore.  This
  is racey.

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