Public bug reported: I stumbled across this during a failing functional test:
https://review.openstack.org/#/c/635668/2/nova/conductor/tasks/migrate.py@263 In Rocky, new RequestSpec objects have the is_bfv field set, but change https://review.openstack.org/#/c/583715/ was added to 'heal' old RequestSpecs when servers created before Rocky are migrated (cold migrate, live migrate, unshelve and evacuate). The problem is change https://review.openstack.org/#/c/610098/ made the RequestSpec.save() operation stop persisting the requested_destination field, which means when heal_reqspec_is_bfv saves the is_bfv change to the RequestSpec, the requested_destination is lost and the user- specified target host is not honored (this would impact all move APIs that target a target host, so cold migrate, live migrate and evacuate). The simple way to fix it is by not overwriting the set requested_destination field during save (don't persist it in the database, but don't reset it to None in the object in memory): https://review.openstack.org/#/c/635668/2/nova/objects/request_spec.py@517 This could also be a problem for the 'network_metadata' field added in Rocky: https://review.openstack.org/#/c/564442/ ** Affects: nova Importance: High Status: Triaged ** Affects: nova/rocky Importance: High Status: Triaged ** Tags: migration ** Also affects: nova/rocky Importance: Undecided Status: New ** Changed in: nova/rocky Status: New => Triaged ** Changed in: nova/rocky Importance: Undecided => High -- 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/1815153 Title: Requested host during cold migrate is ignored if server created before Rocky Status in OpenStack Compute (nova): Triaged Status in OpenStack Compute (nova) rocky series: Triaged Bug description: I stumbled across this during a failing functional test: https://review.openstack.org/#/c/635668/2/nova/conductor/tasks/migrate.py@263 In Rocky, new RequestSpec objects have the is_bfv field set, but change https://review.openstack.org/#/c/583715/ was added to 'heal' old RequestSpecs when servers created before Rocky are migrated (cold migrate, live migrate, unshelve and evacuate). The problem is change https://review.openstack.org/#/c/610098/ made the RequestSpec.save() operation stop persisting the requested_destination field, which means when heal_reqspec_is_bfv saves the is_bfv change to the RequestSpec, the requested_destination is lost and the user-specified target host is not honored (this would impact all move APIs that target a target host, so cold migrate, live migrate and evacuate). The simple way to fix it is by not overwriting the set requested_destination field during save (don't persist it in the database, but don't reset it to None in the object in memory): https://review.openstack.org/#/c/635668/2/nova/objects/request_spec.py@517 This could also be a problem for the 'network_metadata' field added in Rocky: https://review.openstack.org/#/c/564442/ To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1815153/+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