Files
nova/releasenotes/notes/unproxied-libvirt-list-devices-7cd218c1a33535c9.yaml
melanie witt f304b9eaad libvirt: Wrap un-proxied listDevices() and listAllDevices()
This is similar to change I668643c836d46a25df46d4c99a973af5e50a39db
where the objects returned in a list from a libvirt call were not
tpool.Proxy wrapped. Because the objects are not wrapped, calling
methods on them such as listCaps() can block all other greenthreads
and can cause nova-compute to freeze for hours in certain scenarios.

This adds the same wrapping to libvirt calls which return lists of
virNodeDevice.

Closes-Bug: #2091033

Change-Id: I60d6f04d374e9ede5895a43b7a75e955b0fea3c5
2025-01-17 11:08:11 +00:00

12 lines
578 B
YAML

fixes:
- |
`Bug #2091033`_: Fixed calls to libvirt ``listDevices()`` and
``listAllDevices()`` from potentially blocking all other greenthreads
in ``nova-compute``. Under certain circumstances, it was possible for
the ``nova-compute`` service to freeze with all other greenthreads
blocked and unable to perform any other activities including logging.
This issue has been fixed by wrapping the libvirt ``listDevices()``
and ``listAllDevices()`` calls with ``eventlet.tpool.Proxy``.
.. _Bug #2091033: https://bugs.launchpad.net/nova/+bug/2091033