We contentedly announce the release of: nova 23.1.0: Cloud computing fabric controller This release is part of the wallaby 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. 23.1.0 ^^^^^^ Upgrade Notes ************* * As part of the fix for bug 1910466, code that attempted to optimize VM CPU thread assignment based on the host CPU topology as it was determined to be buggy, undocumented and rejected valid virtual CPU topologies while also producing different behavior when CPU pinning was enabled vs disabled. The optimization may be reintroduced in the future with a more generic implementation that works for both pinned and unpinned VMs. Bug Fixes ********* * The nova libvirt driver supports two independent features, virtual CPU topologies and virtual NUMA topologies. Previously, when "hw:cpu_max_sockets", "hw:cpu_max_cores" and "hw:cpu_max_threads" were specified for pinned instances ("hw:cpu_policy=dedicated") without explicit "hw:cpu_sockets", "hw:cpu_cores", "hw:cpu_threads" extra specs or their image equivalent, nova failed to generate a valid virtual CPU topology. This has now been fixed and it is now possible to use max CPU constraints with pinned instances. e.g. a combination of "hw:numa_nodes=2", "hw:cpu_max_sockets=2", "hw:cpu_max_cores=2", "hw:cpu_max_threads=8" and "hw:cpu_policy=dedicated" can now generate a valid topology using a flavor with 8 vCPUs. * Addressed an issue that prevented instances with 1 vcpu using multiqueue feature from being created successfully when their vif_type is TAP. * Minimizes a race condition window when using the "ironic" virt driver where the data generated for the Resource Tracker may attempt to compare potentially stale instance information with the latest known baremetal node information. While this doesn't completely prevent nor resolve the underlying race condition identified in bug 1841481 (https://bugs.launchpad.net/nova/+bug/1841481), this change allows Nova to have the latest state information, as opposed to state information which may be out of date due to the time which it may take to retrieve the status from Ironic. This issue was most observable on baremetal clusters with several thousand physical nodes. Changes in nova 23.0.2..23.1.0 ------------------------------ c958fab901 Avoid modifying the Mock class in test 47dad4836a address open redirect with 3 forward slashes aa5b8d12bc Fix 1vcpu error with multiqueue and vif_type=tap 9c2f297837 Reduce mocking in test_reject_open_redirect for compat 62a3fa4fff Fix request path to query a resource provider by uuid df5158bf3f Allow deletion of compute service with no compute nodes e6cd23c3b4 Reproducer unit test for bug 1860312 58782403cd api: Align availability zone info with forced host 0c36bd28eb [ironic] Minimize window for a resource provider to be lost c9826ca6eb Fix max cpu topologies with numa affinity 5f994a18b3 Test numa and vcpu topologies bug: #1910466 e045d0115d Allow X-OpenStack-Nova-API-Version header in CORS 2b2434c173 Retry lvm volume and volume group query 9cac2a8822 libvirt: Do not destroy volume secrets during _hard_reboot f2ba67184d virt: Add destroy_secrets kwarg to destroy and cleanup Diffstat (except docs and test files) ------------------------------------- nova/api/openstack/compute/servers.py | 80 +++++++++ nova/api/openstack/compute/services.py | 23 ++- nova/cmd/manage.py | 2 +- nova/compute/api.py | 12 +- nova/console/websocketproxy.py | 7 +- nova/middleware.py | 8 +- nova/objects/instance_numa.py | 2 + nova/privsep/fs.py | 15 +- .../unit/api/openstack/compute/test_servers.py | 147 +++++++++++++++-- .../unit/api/openstack/compute/test_services.py | 15 ++ nova/virt/driver.py | 8 +- nova/virt/fake.py | 5 +- nova/virt/hardware.py | 129 +-------------- nova/virt/hyperv/driver.py | 5 +- nova/virt/ironic/driver.py | 21 ++- nova/virt/libvirt/driver.py | 39 +++-- nova/virt/libvirt/vif.py | 3 +- nova/virt/vmwareapi/driver.py | 5 +- ...vcpu-topologies-with-numa-9a9ceb1b0fc7c33d.yaml | 23 +++ .../notes/bug-1939604-547c729b7741831b.yaml | 5 + ...e-bug-1841481-race-window-f76912d4985770ad.yaml | 13 ++ 30 files changed, 640 insertions(+), 395 deletions(-)