yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #47887
[Bug 1512955] Re: Race condition in nova/neutron when booting instance with XenAPI driver
Reviewed: https://review.openstack.org/241127
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=ecd3eb7c945a7b7939c29617c2000a30a48c55dd
Submitter: Jenkins
Branch: master
commit ecd3eb7c945a7b7939c29617c2000a30a48c55dd
Author: Huan Xie <huan.xie@xxxxxxxxxx>
Date: Tue Nov 3 06:47:28 2015 +0000
XenAPI:Resolve Nova/Neutron race condition
When booting an instance, nova and neutron has race condition because
nova don't know whether vif(port) is ready in neutron. There is a
mechenism that letting neutron notify nova when port status changed
from down to active. This fix is for xen driver to add usage of this
event notification to avoid race condition
Closes-Bug: #1512955
Change-Id: I77be3bb728db72e01701c94ee292fa0f237358ed
** Changed in: nova
Status: In Progress => 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/1512955
Title:
Race condition in nova/neutron when booting instance with XenAPI
driver
Status in OpenStack Compute (nova):
Fix Released
Bug description:
1. My environment is:
Xenserver 6.5
OpenStack latest master branch
Neutron network with ML2 plugin, OVS driver
2. When I ran tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops it will always fail.
It failed at finding the new created instance's port before assign a floating ip to this port.
Relevant log file of tempest:
tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops[compute,id-f323b3ba-82f8-4db7-8ea6-6a895869ec49,network,smoke]
-------------------------------------------------------------------------------------------------------------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "tempest/test.py", line 127, in wrapper
return f(self, *func_args, **func_kwargs)
File "tempest/scenario/test_network_basic_ops.py", line 398, in test_network_basic_ops
self._setup_network_and_servers()
File "tempest/scenario/test_network_basic_ops.py", line 123, in _setup_network_and_servers
floating_ip = self.create_floating_ip(server)
File "tempest/scenario/manager.py", line 774, in create_floating_ip
port_id, ip4 = self._get_server_port_id_and_ip4(thing)
File "tempest/scenario/manager.py", line 755, in _get_server_port_id_and_ip4
% port_map)
File "/opt/stack/tempest/.tox/all/local/lib/python2.7/site-packages/testtools/testcase.py", line 350, in assertEqual
self.assertThat(observed, matcher, message)
File "/opt/stack/tempest/.tox/all/local/lib/python2.7/site-packages/testtools/testcase.py", line 435, in assertThat
raise mismatch_error
testtools.matchers._impl.MismatchError: 0 != 1: Found multiple IPv4 addresses: []. Unable to determine which port to target.
----------------------------------------------------------------------------------------------------------------------------------------------------
3. This is a failure that can be reproduced each time as long as we
use xen and neutron.
4. I tried investagating with this problem, it dues to nova/neutron
race condition when booting an instance under xen driver, since xen
driver doesn't handle neutron's "network-vif-plugged" notification
event.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1512955/+subscriptions
References