[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