yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #77350
[Bug 1815153] Re: Requested host during cold migrate is ignored if server created before Rocky
Reviewed: https://review.openstack.org/636271
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=67d5970445818f2f245cf1b6d9d46c36fb220f04
Submitter: Zuul
Branch: master
commit 67d5970445818f2f245cf1b6d9d46c36fb220f04
Author: Takashi Natsume <natsume.takashi@xxxxxxxxxxxxx>
Date: Tue Feb 12 11:46:57 2019 +0900
Fix resetting non-persistent fields when saving obj
The 'requested_destination', 'network_metadata', 'retry' fields
in the RequestSpec object are reset when saving the object currently.
When cold migrating a server, the API sets the requested_destination
so conductor will pass that information to the scheduler
to restrict the cold migration to that host.
But the 'heal_reqspec_is_bfv' method called from the conductor
makes an update to the RequestSpec which resets
the requested_destination so the server could end up being cold migrated
to some other host than the one that was requested by the API user.
So make them not be reset when saving the object.
Change-Id: I2131558f0edfe603ee1e8d8bae66a3caf5182a58
Closes-Bug: #1815153
** 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/1815153
Title:
Requested host during cold migrate is ignored if server created before
Rocky
Status in OpenStack Compute (nova):
Fix Released
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
References