[release-announce] nova 19.0.3 (stein)

no-reply at openstack.org no-reply at openstack.org
Fri Oct 4 09:12:13 UTC 2019


We are stoked to announce the release of:

nova 19.0.3: Cloud computing fabric controller

This release is part of the stein 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.

19.0.3
^^^^^^

Known Issues

* Operators should be aware that nova-api has a dependency on
  eventlet for executing parallel queries across multiple cells and is
  monkey- patched accordingly. When nova-api is running under uWSGI or
  mod_wsgi, the wsgi app will pause after idle time. While the wsgi
  app is paused, rabbitmq heartbeats will not be sent and log messages
  related to this can be seen in the nova-api logs when the wsgi app
  resumes when new requests arrive to the nova-api. These messages are
  not harmful. When the wsgi app resumes, oslo.messaging will
  reconnect to rabbitmq and requests will be served successfully.

  There is one caveat, which is that the wsgi app configuration must
  be left as the default "threads=1" or set explicitly to "threads=1"
  to ensure that reconnection will work properly. When threads > 1, it
  is not guaranteed that oslo.messaging will reconnect to rabbitmq
  when the wsgi app resumes after pausing during idle time. Threads
  are used internally by oslo.messaging for heartbeats and more, and
  it may fail in a variety of ways if run under eventlet with an app
  that violates eventlet's threading guarantees. When oslo.messaging
  does not reconnect to rabbitmq after a wsgi app pause, RPC requests
  will fail with a "MessagingTimeout" error. So, it is necessary to
  have the wsgi app configured with "threads=1" for reconnection to
  work properly.

  If running with "threads=1" is not an option in a particular
  environment, there are two other workarounds:

  * Use the eventlet wsgi server instead of uWSGI or mod_wsgi, or

  * Disable eventlet monkey-patching using the environment variable
    "OS_NOVA_DISABLE_EVENTLET_PATCHING=yes".

    Note that disabling eventlet monkey-patching will cause queries
    across multiple cells to be serialized instead of running in
    parallel and this may be undesirable in a large deployment with
    multiple cells, for performance reasons.

  Please see the following related bugs for more details:

  * https://bugs.launchpad.net/nova/+bug/1825584

  * https://bugs.launchpad.net/nova/+bug/1829062

* In Stein the Placement service is available either as part of
  Nova, or independently packaged from its own project. This is to
  allow easier migration from one to another. See the upgrade notes
  for more information.

  When using the Placement packaged from Nova, some deployment
  strategies can lead to the service stalling with error messages
  similar to:

     Traceback (most recent call last):
       File "/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 460, in fire_timers
         timer()
       File "/usr/lib/python2.7/site-packages/eventlet/hubs/timer.py", line 59, in __call__
         cb(*args, **kw)
       File "/usr/lib/python2.7/site-packages/eventlet/semaphore.py", line 147, in _do_acquire
         waiter.switch()
     error: cannot switch to a different thread

  The reasons this is happening are discussed in bug 1829062. There
  are three workarounds available:

  * In the environment of the web server running the placement
    service, set "OS_NOVA_DISABLE_EVENTLET_PATCHING=yes" so that
    eventlet does not conflict with thread handling in the web server.

  * Turn off threading in the web server. For example, if using
    "mod_wsgi" or "uwsgi", set "threads=1" in their respective
    configurations.

  * Switch to using the extracted placement. It does not suffer from
    eventlet.

   (https://docs.openstack.org/placement/latest/upgrade/to-stein.html)
  (https://bugs.launchpad.net/nova/+bug/1829062)

Changes in nova 19.0.2..19.0.3
------------------------------

ff29f7018f Reduce scope of 'path' query parameter to noVNC consoles
66bf82864d Handle legacy request spec dict in ComputeTaskManager._cold_migrate
fd491c7415 Func test for migrate reschedule with pinned compute rpc
7d54f91e9f Make nova.compute.rpcapi.ComputeAPI.router a singleton
a694952eac Add reno about nova-api eventlet monkey-patching and rabbitmq
d6b5e81df5 libvirt: stub logging of host capabilities
4adf563da0 Find instance in another cell during floating IP re-association
38fc7f6f16 Trap and log errors from _update_inst_info_cache_for_disassociated_fip
faeb890f36 neutron: refactor nw info cache refresh out of associate_floating_ip
bd669a5352 Fix a misuse of assertGreaterEqual
ec4993ce0f Fix race in _test_live_migration_force_complete
8a9efe1cbd Log notifications if assertion in _test_live_migration_force_complete fails
c2b88839c4 Fixing broken links
c2b8496bd2 doc: Fix a broken reference link
c21cbf2964 Fix rebuild of baremetal instance when vm_state is ERROR
b6c3ff6c77 Remove descriptions of nonexistent hacking rules
e5b304af45 doc: remove confusing docs about aggregate allocation ratios
88b2206f2d Fix wrong assertions in unit tests
fa59033c40 Fix 'has_calls' method calls in unit tests
d7996ff5e7 Add an issue releasenote for placement eventlet stall
d90186068b Fix non-existent method of Mock
1b02166528 Restore soft-deleted compute node with same uuid
e7109d43d6 Add functional regression recreate test for bug 1839560
e135afec85 lxc: make use of filter python3 compatible
a8e19afb3d Fix misuse of nova.objects.base.obj_equal_prims
648770bd68 rt: only map compute node if we created it
677c95280b Cache host to cell mapping in HostManager
3055229841 Convert HostMapping.cells to a dict
77a077573b Delete unused get_all_host_states method
d7e4e47d57 Retrun 400 if invalid query parameters are specified
bd03723a0c Add useful error log when _determine_version_cap raises DBNotAllowed
5eb4e01a83 Fix the server group "policy" field type in api-ref


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

HACKING.rst                                        |   6 +-
api-ref/source/parameters.yaml                     |  20 +-
.../get-rdp-console-post-resp.json                 |   4 +-
.../get-serial-console-post-resp.json              |   4 +-
.../get-spice-console-post-resp.json               |   2 +-
.../admin/configuration/hypervisor-xen-api.rst     |   5 +-
.../admin/configuration/hypervisor-xen-libvirt.rst |   2 +-
.../contributor/testing/zero-downtime-upgrade.rst  |   2 +-
nova/api/openstack/compute/schemas/flavors.py      |  16 +-
nova/cmd/manage.py                                 |   4 +
nova/compute/manager.py                            |   2 +-
nova/compute/resource_tracker.py                   |   6 +-
nova/compute/rpcapi.py                             |  84 ++++++--
nova/conductor/manager.py                          |  18 +-
nova/conductor/rpcapi.py                           |   2 +
nova/conf/database.py                              |   5 +-
nova/db/sqlalchemy/api.py                          |  46 ++++-
nova/network/neutronv2/api.py                      | 103 ++++++++--
nova/objects/console_auth_token.py                 |  14 +-
nova/scheduler/host_manager.py                     |  72 ++++---
nova/scheduler/manager.py                          |   3 +
nova/test.py                                       |   4 +
.../get-rdp-console-post-resp.json.tpl             |   2 +-
.../get-serial-console-post-resp.json.tpl          |   2 +-
.../get-spice-console-post-resp.json.tpl           |   2 +-
.../functional/regressions/test_bug_1839560.py     | 114 +++++++++++
.../functional/regressions/test_bug_1843090.py     | 133 +++++++++++++
nova/virt/disk/mount/nbd.py                        |   5 +-
nova/virt/fake.py                                  |  14 ++
nova/virt/ironic/driver.py                         |   6 +-
nova/virt/libvirt/host.py                          |   9 +-
.../eventlet-monkey-patch-5f734ef581aa550e.yaml    |  42 ++++
.../placement-eventlet-stall-ffcca23a6a364c78.yaml |  34 ++++
63 files changed, 1457 insertions(+), 355 deletions(-)







More information about the Release-announce mailing list