← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1815153] [NEW] Requested host during cold migrate is ignored if server created before Rocky

 

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


Follow ups