[release-announce] nova 25.1.0 (yoga)

no-reply at openstack.org no-reply at openstack.org
Thu Jan 26 12:06:31 UTC 2023


We are amped to announce the release of:

nova 25.1.0: Cloud computing fabric controller

This release is part of the yoga stable release series.

The source is available from:

    https://opendev.org/openstack/nova

Download the package from:

    https://tarballs.openstack.org/nova/

Please report issues through:

    https://bugs.launchpad.net/nova/+bugs

For more details, please see below.

25.1.0
^^^^^^


Known Issues
************

* Nova's use of libvirt's compareCPU() API served its purpose over
  the years, but its design limitations break live migration in subtle
  ways. For example, the compareCPU() API compares against the host
  physical CPUID. Some of the features from this CPUID aren not
  exposed by KVM, and then there are some features that KVM emulates
  that are not in the host CPUID. The latter can cause bogus live
  migration failures.

  With QEMU >=2.9 and libvirt >= 4.4.0, libvirt will do the right
  thing in terms of CPU compatibility checks on the destination host
  during live migration. Nova satisfies these minimum version
  requirements by a good margin. So, this workaround provides a way to
  skip the CPU comparison check on the destination host before
  migrating a guest, and let libvirt handle it correctly.

  This workaround will be deprecated and removed once Nova replaces
  the older libvirt APIs with their newer counterparts. The work is
  being tracked via this blueprint cpu-selection-with-hypervisor-
  consideration.

   (https://blueprints.launchpad.net/nova/+spec/cpu-selection-with-
  hypervisor-consideration)


Bug Fixes
*********

* As a fix for bug 1942329
  (https://bugs.launchpad.net/neutron/+bug/1942329) nova now updates
  the MAC address of the "direct-physical" ports during mova
  operations to reflect the MAC address of the physical device on the
  destination host. Those servers that were created before this fix
  need to be moved or the port needs to be detached and the re-
  attached to synchronize the MAC address.

* Bug #1978444 (https://bugs.launchpad.net/nova/+bug/1978444): Now
  nova retries deleting a volume attachment in case Cinder API returns
  "504 Gateway Timeout". Also, "404 Not Found" is now ignored and
  leaves only a warning message.

* Bug #1981813 (https://bugs.launchpad.net/nova/+bug/1981813): Now
  nova detects if the "vnic_type" of a bound port has been changed in
  neutron and leaves an ERROR message in the compute service log as
  such change on a bound port is not supported. Also the restart of
  the nova-compute service will not crash any more after such port
  change. Nova will log an ERROR and skip the  initialization of the
  instance with such port during the startup.

* If compute service is down in source node and user try to stop
  instance, instance gets stuck at powering-off, hence evacuation
  fails with msg: Cannot 'evacuate' instance <instance-id> while it is
  in task_state powering-off. It is now possible for evacuation to
  ignore the vm task state. For more details see: bug 1978983

   (https://bugs.launchpad.net/nova/+bug/1978983)

* When vDPA was first introduced move operations were implemented in
  the code but untested either in a real environment or in functional
  tests. Due to this gap nova elected to block move operations for
  instance with vDPA devices. All move operations except for live
  migration have now been tested and found to indeed work so the API
  blocks have now been removed and functional tests introduced. Other
  operations such as suspend and live migration require code changes
  to support and will be enabled as new features in the future.


Other Notes
***********

* A workaround has been added to the libvirt driver to catch and
  pass migrations that were previously failing with the error:

  "libvirt.libvirtError: internal error: migration was active, but no
  RAM info was set"

  See bug 1982284 for more details.

   (https://bugs.launchpad.net/nova/+bug/1982284)

Changes in nova 25.0.1..25.1.0
------------------------------

516f0de1f6 [stable-only][cve] Check VMDK create-type against an allowed list
a28c827195 Gracefully ERROR in _init_instance if vnic_type changed
4954f99368 Reproduce bug 1981813 in func env
4a2b44c7cf Adapt websocketproxy tests for SimpleHTTPServer fix
041939361e enable blocked VDPA move operations
f98858aa77 Add compute restart capability for libvirt func tests
69667a817c Remove double mocking... again
b40bd1bf52 Remove double mocking
813377077b Record SRIOV PF MAC in the binding profile
683cbd0633 refactor: remove duplicated logic
17ae907569 [compute] always set instance.host in post_livemigration
71e5a1dbcc Adds a repoducer for post live migration fail
4316234e63 Handle "no RAM info was set" migration case
2738317167 nova-live-migration tests not needed for Ironic
6d61fccb84 For evacuation, ignore if task_state is not None
6bd0bf00fc add regression test case for bug 1978983
b94ffb1123 Retry attachment delete API call for 504 Gateway Timeout
0f6c0cd2e4 Fix typos in help messages
277f88e387 libvirt: Add a workaround to skip compareCPU() on destination
6f32b11864 neutron: Unbind remaining ports after PortNotFound


Diffstat (except docs and test files)
-------------------------------------

.zuul.yaml                                         |  19 +-
nova/compute/api.py                                |  12 +-
nova/compute/manager.py                            |  60 +-
nova/compute/resource_tracker.py                   |   2 +-
nova/conf/compute.py                               |  11 +-
nova/conf/hyperv.py                                |   2 +-
nova/conf/libvirt.py                               |   4 +-
nova/conf/neutron.py                               |   2 +-
nova/conf/quota.py                                 |   2 +-
nova/conf/scheduler.py                             |   4 +-
nova/conf/workarounds.py                           |   8 +
nova/network/neutron.py                            |  90 ++-
nova/objects/pci_device.py                         |  19 +
nova/test.py                                       |  15 +-
.../functional/compute/test_resource_tracker.py    |  10 -
.../libvirt/test_device_bus_migration.py           |   8 +-
.../functional/libvirt/test_numa_live_migration.py |  12 +-
.../functional/libvirt/test_pci_sriov_servers.py   | 743 +++++++++++++++++++--
.../functional/regressions/test_bug_1628606.py     |  60 ++
.../functional/regressions/test_bug_1781286.py     |  30 +-
.../functional/regressions/test_bug_1896463.py     |   8 -
.../functional/regressions/test_bug_1978983.py     |  71 ++
.../api/openstack/compute/test_create_backup.py    |   4 -
.../unit/api/openstack/compute/test_hypervisors.py | 394 +++++------
.../unit/api/openstack/compute/test_limits.py      | 164 +++--
.../api/openstack/compute/test_migrate_server.py   |   3 +-
.../unit/api/openstack/compute/test_quotas.py      |   5 +-
.../api/openstack/compute/test_server_actions.py   |  38 +-
.../openstack/compute/test_server_group_quotas.py  |   7 +-
.../unit/api/openstack/compute/test_servers.py     |  30 +-
.../unit/api/openstack/compute/test_volumes.py     |  10 +-
nova/virt/fake.py                                  |  35 +
nova/virt/images.py                                |  31 +
nova/virt/libvirt/driver.py                        |  19 +-
nova/virt/libvirt/guest.py                         |   7 +
nova/virt/libvirt/host.py                          |  15 +
nova/volume/cinder.py                              |  18 +-
.../notes/bug-1942329-22b08fa4b322881d.yaml        |   9 +
.../notes/bug-1978444-db46df5f3d5ea19e.yaml        |   7 +
...-1981813-vnic-type-change-9f3e16fae885b57f.yaml |   9 +
...andle-no-ram-info-was-set-99784934ed80fd72.yaml |  11 +
...task-state-for-evacuation-e000f141d0153638.yaml |  11 +
.../skip-compare-cpu-on-dest-6ae419ddd61fd0f8.yaml |  24 +
.../notes/vdpa-move-ops-a7b3799807807a92.yaml      |  11 +
82 files changed, 2930 insertions(+), 1167 deletions(-)







More information about the Release-announce mailing list