Reviewed: https://review.openstack.org/509759 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=b5dca17f74b7a789e16b78178ae5874a30f3e0da Submitter: Jenkins Branch: master
commit b5dca17f74b7a789e16b78178ae5874a30f3e0da Author: Balazs Gibizer <balazs.gibi...@ericsson.com> Date: Thu Oct 5 14:01:35 2017 +0200 fix unstable shelve offload functional tests The functional tests that are shelved offloaded instances and asserted that the resource allocation of the instance are freed were unstable. These tests only waited for the instance state to become SHELVED_OFFLOADED before checked the allocations. However the compute manager sets the instance state to SHELVED_OFFLOADED before deleting the allocations[1]. Therefore these tests were racy. With this patch the test will wait not only for the instance status to change but also for the instance host to be nulled as that happens after the resources are freed. [1] https://github.com/openstack/nova/blob/e4f89ed5dd4259188d020749fa8fb1c77be2c03a/nova/compute/manager.py#L4502-L4521 Change-Id: Ibb90571907cafcb649284e4ea30810a307f1737e Closes-Bug: #1721514 ** 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/1721514 Title: test_driver_spawn_fail_when_unshelving_instance fluctuates Status in OpenStack Compute (nova): Fix Released Status in OpenStack Compute (nova) pike series: In Progress Bug description: The functional test test_driver_spawn_fail_when_unshelving_instance fluctuates at the following place: Captured traceback: 2017-10-04 17:29:33.464455 | ~~~~~~~~~~~~~~~~~~~ 2017-10-04 17:29:33.464483 | b'Traceback (most recent call last):' 2017-10-04 17:29:33.464577 | b' File "/home/jenkins/workspace/gate-nova-tox-functional-py35-ubuntu-xenial/nova/tests/functional/test_servers.py", line 2664, in test_driver_spawn_fail_when_unshelving_instance' 2017-10-04 17:29:33.464618 | b" {'vcpus': 0, 'ram': 0, 'disk': 0}, usages)" 2017-10-04 17:29:33.464695 | b' File "/home/jenkins/workspace/gate-nova-tox-functional-py35-ubuntu-xenial/nova/tests/functional/test_servers.py", line 1117, in assertFlavorMatchesAllocation' 2017-10-04 17:29:33.464733 | b" self.assertEqual(flavor['vcpus'], allocation['VCPU'])" 2017-10-04 17:29:33.464816 | b' File "/home/jenkins/workspace/gate-nova-tox-functional-py35-ubuntu-xenial/.tox/functional-py35/lib/python3.5/site-packages/testtools/testcase.py", line 411, in assertEqual' 2017-10-04 17:29:33.464849 | b' self.assertThat(observed, matcher, message)' 2017-10-04 17:29:33.464931 | b' File "/home/jenkins/workspace/gate-nova-tox-functional-py35-ubuntu-xenial/.tox/functional-py35/lib/python3.5/site-packages/testtools/testcase.py", line 498, in assertThat' 2017-10-04 17:29:33.464953 | b' raise mismatch_error' 2017-10-04 17:29:33.464985 | b'testtools.matchers._impl.MismatchError: 0 != 1' 2017-10-04 17:29:33.464998 | b'' 2017-10-04 17:29:33.465008 | It is because the test waits for the instance state to be set to SHELVED_OFFLOADED and then asserts that the allocation of the instance is deleted in Placement. But the compute/manager set the instance state _before_ it deletes that allocation so the test is racy. [1] http://logstash.openstack.org/#dashboard/file/logstash.json?query=message%3A%5C%22in%20test_driver_spawn_fail_when_unshelving_instance%5C%22 To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1721514/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp