Reviewed: https://review.openstack.org/394585 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=2e32ed122b415009722456716c47d8374e9d449c Submitter: Jenkins Branch: master
commit 2e32ed122b415009722456716c47d8374e9d449c Author: Matt Riedemann <[email protected]> Date: Wed Nov 23 16:18:18 2016 -0500 Fix race in test_volume_swap_server_with_error This functional test is waiting for a flag to be set in the CinderFixture which is called when swap_volume calls volume_api.unreserve_volume after the swap_volume error occurs. That happens after the two swap-volume notifications are sent (for start and error). The test was asserting a 5th notification for the generic instance fault, which happens, but might not happen before the CinderFixture flag is set and the test checks for 5 notifications. This test really only cares that there are the two swap-volume notifications, so to avoid a race this change just makes the test assert that there are at least 4 versioned notifications by the time the swap-volume error occurs, which is all it was checking after that anyway. Change-Id: I8fd44b083f109c034958a305a4e41f9d810c4389 Closes-Bug: #1639894 ** 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/1639894 Title: TestInstanceNotificationSample.test_volume_swap_server_with_error is racy Status in OpenStack Compute (nova): Fix Released Bug description: This failed on an unrelated change today: http://logs.openstack.org/24/394524/1/check/gate-nova-tox-db- functional-ubuntu- xenial/01a5cce/console.html#_2016-11-07_17_27_14_569696 https://github.com/openstack/nova/blob/0132cc8c2663843a891e054d9185e6ba2fd589ad/nova/tests/functional/notification_sample_tests/test_instance.py#L547 That says it expects 3 notifications, but it really only cares about 2. Based on when the compute.exception happens, and when self._wait_until_swap_volume_error() returns True, the 3rd compute.exception notification might not have happened. The swap_error flag is set in the cinder fixture here: https://github.com/openstack/nova/blob/0132cc8c2663843a891e054d9185e6ba2fd589ad/nova/tests/fixtures.py#L868 That happens here: https://github.com/openstack/nova/blob/0132cc8c2663843a891e054d9185e6ba2fd589ad/nova/compute/manager.py#L4936 Which is after the swap-volume error notification is sent. The compute.exception comes from the instance fault handler here: https://github.com/openstack/nova/blob/0132cc8c2663843a891e054d9185e6ba2fd589ad/nova/compute/manager.py#L4961 Which is after cinder.swap_error is set to true. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1639894/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

