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 but 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.
The functional test test_driver_ spawn_fail_ when_unshelving _instance fluctuates at the following place: 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' jenkins/ workspace/ gate-nova- tox-functional- py35-ubuntu- xenial/ nova/tests/ functional/ test_servers. py", line 1117, in assertFlavorMat chesAllocation' l(flavor[ 'vcpus' ], allocation[ 'VCPU'] )" jenkins/ workspace/ gate-nova- tox-functional- py35-ubuntu- xenial/ .tox/functional -py35/lib/ python3. 5/site- packages/ testtools/ testcase. py", line 411, in assertEqual' (observed, matcher, message)' jenkins/ workspace/ gate-nova- tox-functional- py35-ubuntu- xenial/ .tox/functional -py35/lib/ python3. 5/site- packages/ testtools/ testcase. py", line 498, in assertThat' matchers. _impl.MismatchE rror: 0 != 1'
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/
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/
2017-10-04 17:29:33.464733 | b" self.assertEqua
2017-10-04 17:29:33.464816 | b' File "/home/
2017-10-04 17:29:33.464849 | b' self.assertThat
2017-10-04 17:29:33.464931 | b' File "/home/
2017-10-04 17:29:33.464953 | b' raise mismatch_error'
2017-10-04 17:29:33.464985 | b'testtools.
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 but 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