← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2080556] Re: old nova instances cant be started on post victoria deployments

 

Reviewed:  https://review.opendev.org/c/openstack/nova/+/929187
Committed: https://opendev.org/openstack/nova/commit/2a870323c3d44d2056b326c184c435a484513532
Submitter: "Zuul (22348)"
Branch:    master

commit 2a870323c3d44d2056b326c184c435a484513532
Author: Sean Mooney <work@xxxxxxxxxxxxxxx>
Date:   Thu Sep 12 21:05:54 2024 +0100

    allow upgrade of pre-victoria InstanceNUMACells
    
    This change ensures that if we are upgrading a
    InstanceNUMACell object created before victoria
    <1.5 that we properly set pcpuset=set() when
    loading the object form the db.
    
    This is requried to support instances with a numa
    topology that do not use cpu pinning.
    
    Depends-On: https://review.opendev.org/c/openstack/python-openstackclient/+/929236
    Closes-Bug: #2080556
    Change-Id: Iea55aabe71c250d8c8e93c61421450b909a7fa3d


** 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/2080556

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

Status in OpenStack Compute (nova):
  Fix Released

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



References