← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2080556] [NEW] old nova instance cant be started on post victoria deployments

 

Public bug reported:

Downstream we had an interesting but report
https://bugzilla.redhat.com/show_bug.cgi?id=2311875

Instances created after liberty but before victoria
that request a numa topology but do not have CPU pinning
cannot be started on post victoria nova.

as part of the 
https://specs.openstack.org/openstack/nova-specs/specs/train/implemented/cpu-resources.html
spec we started tracking cpus as PCVU and VCPU resource classes but since a given instance
would either have pinned cpus or floating cpus  no changes too the instance numa topology object
were required.

with the introduction of mixed cpus in a single instnace

https://specs.openstack.org/openstack/nova-
specs/specs/victoria/implemented/use-pcpu-vcpu-in-one-instance.html

the instnace numa topology object was extended with a new pcpuset field.

as part of that work the _migrate_legacy_object function was extended to default pcpuset to an empty set
https://github.com/openstack/nova/commit/867d4471013bf6a70cd3e9e809daf80ea358df92#diff-ed76deb872002cf64931c6d3f2d5967396240dddcb93da85f11886afc7dc4333R212
for numa topologies that predate ovo

and

an new _migrate_legacy_dedicated_instance_cpuset function was added to
migrate existing pinned instances and instnace with ovo in the  db.

what we missed in the review is that unpinned guests should have had the cell.pcpuset set to the empty set
here
https://github.com/openstack/nova/commit/867d4471013bf6a70cd3e9e809daf80ea358df92#diff-ed76deb872002cf64931c6d3f2d5967396240dddcb93da85f11886afc7dc4333R178

The new filed is not nullable and is not present in the existing json serialised object
as a result accessing cell.pcpuset on object returned form the db will raise a NotImplementedError because it is unset if the VM was created between liberty and victoria.
this only applies to non-pinned vms with a numa topology i.e. 
hw:mem_page_size=<anything> or hw:numa_nodes=<anything>

** Affects: nova
     Importance: High
     Assignee: sean mooney (sean-k-mooney)
         Status: In Progress


** Tags: numa

** Changed in: nova
     Assignee: (unassigned) => sean mooney (sean-k-mooney)

** Changed in: nova
   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/2080556

Title:
  old nova instance cant be started on post victoria deployments

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  Downstream we had an interesting but report
  https://bugzilla.redhat.com/show_bug.cgi?id=2311875

  Instances created after liberty but before victoria
  that request a numa topology but do not have CPU pinning
  cannot be started on post victoria nova.

  as part of the 
  https://specs.openstack.org/openstack/nova-specs/specs/train/implemented/cpu-resources.html
  spec we started tracking cpus as PCVU and VCPU resource classes but since a given instance
  would either have pinned cpus or floating cpus  no changes too the instance numa topology object
  were required.

  with the introduction of mixed cpus in a single instnace

  https://specs.openstack.org/openstack/nova-
  specs/specs/victoria/implemented/use-pcpu-vcpu-in-one-instance.html

  the instnace numa topology object was extended with a new pcpuset
  field.

  as part of that work the _migrate_legacy_object function was extended to default pcpuset to an empty set
  https://github.com/openstack/nova/commit/867d4471013bf6a70cd3e9e809daf80ea358df92#diff-ed76deb872002cf64931c6d3f2d5967396240dddcb93da85f11886afc7dc4333R212
  for numa topologies that predate ovo

  and

  an new _migrate_legacy_dedicated_instance_cpuset function was added to
  migrate existing pinned instances and instnace with ovo in the  db.

  what we missed in the review is that unpinned guests should have had the cell.pcpuset set to the empty set
  here
  https://github.com/openstack/nova/commit/867d4471013bf6a70cd3e9e809daf80ea358df92#diff-ed76deb872002cf64931c6d3f2d5967396240dddcb93da85f11886afc7dc4333R178

  The new filed is not nullable and is not present in the existing json serialised object
  as a result accessing cell.pcpuset on object returned form the db will raise a NotImplementedError because it is unset if the VM was created between liberty and victoria.
  this only applies to non-pinned vms with a numa topology i.e. 
  hw:mem_page_size=<anything> or hw:numa_nodes=<anything>

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2080556/+subscriptions



Follow ups