Before change I4244f7dd8fe74565180f73684678027067b4506e in Stein, when
a cold migration would reschedule to conductor it would not send the
RequestSpec, only the filter_properties. The filter_properties contain
a primitive version of the instance group information from the RequestSpec
for things like the group members, hosts and policies, but not the uuid.
When conductor is trying to reschedule the cold migration without a
RequestSpec, it builds a RequestSpec from the components it has, like the
filter_properties. This results in a RequestSpec with an instance_group
field set but with no uuid field in the RequestSpec.instance_group.
That RequestSpec gets persisted and then because of change
Ie70c77db753711e1449e99534d3b83669871943f, later attempts to load the
RequestSpec from the database will fail because of the missing
RequestSpec.instance_group.uuid.
The test added here recreates the pre-Stein scenario which could still
be a problem (on master) for any corrupted RequestSpecs for older
instances.
NOTE(mriedem): In this version we have to use the FakeDriver because the
MediumFakeDriver did not exist in Ocata. Also, we have to disable the
DiskFilter since we are using placement during scheduling.
Change-Id: I05700c97f756edb7470be7273d5c9c3d76d63e29
Related-Bug: #1830747
(cherry picked from commit c96c7c5e13bde39944a9dde7da7fe418b311ca2d)
(cherry picked from commit 8478a754802e29dffbb65ef363ee189162f0adea)
(cherry picked from commit a0a187c9bb9bef149e193027a6eedc09ba10ce1f)
(cherry picked from commit 581df2c98676b6734e8195ab56c9e0dba74789a5)
(cherry picked from commit 09ec97b95b19a42b949da76fe1f1b3cc06da8f35)
Reviewed: https:/ /review. opendev. org/663143 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=c41fe944dbf 554e2d5980595e6 155e25e6c0c25b
Committed: https:/
Submitter: Zuul
Branch: stable/ocata
commit c41fe944dbf554e 2d5980595e6155e 25e6c0c25b
Author: Matt Riedemann <email address hidden>
Date: Tue May 28 13:59:20 2019 -0400
Add regression recreate test for bug 1830747
Before change I4244f7dd8fe745 65180f736846780 27067b4506e in Stein, when properties. This results in a RequestSpec with an instance_group instance_ group. 3711e1449e99534 d3b83669871943f , later attempts to load the .instance_ group.uuid.
a cold migration would reschedule to conductor it would not send the
RequestSpec, only the filter_properties. The filter_properties contain
a primitive version of the instance group information from the RequestSpec
for things like the group members, hosts and policies, but not the uuid.
When conductor is trying to reschedule the cold migration without a
RequestSpec, it builds a RequestSpec from the components it has, like the
filter_
field set but with no uuid field in the RequestSpec.
That RequestSpec gets persisted and then because of change
Ie70c77db75
RequestSpec from the database will fail because of the missing
RequestSpec
The test added here recreates the pre-Stein scenario which could still
be a problem (on master) for any corrupted RequestSpecs for older
instances.
NOTE(mriedem): In this version we have to use the FakeDriver because the river did not exist in Ocata. Also, we have to disable the
MediumFakeD
DiskFilter since we are using placement during scheduling.
Change-Id: I05700c97f756ed b7470be7273d5c9 c3d76d63e29 944a9dde7da7fe4 18b311ca2d) ffbb65ef363ee18 9162f0adea) 49e193027a6eedc 09ba10ce1f) 34e8195ab56c9e0 dba74789a5) b949da76fe1f1b3 cc06da8f35)
Related-Bug: #1830747
(cherry picked from commit c96c7c5e13bde39
(cherry picked from commit 8478a754802e29d
(cherry picked from commit a0a187c9bb9bef1
(cherry picked from commit 581df2c98676b67
(cherry picked from commit 09ec97b95b19a42