Public bug reported:

Ubuntu release: 24.04.4
libvirt version: 10.0.0-2ubuntu8.12

We noticed that the libvirt RPC client becomes slower and slower over
time. In our setup it's used from an OpenStack nova-compute service. At
some point the nova-compute service is constantly taking 100% CPU
because a periodic task that lists all node devices and their caps takes
all the time.

The periodic task calls virConnectListAllNodeDevices followed by calls
per device of virNodeDeviceNumOfCaps and virNodeDeviceListCaps. And
those RPCs become slower and slower.

This is probably related to a GSource leak in src/rpc/virnetclient.c
which is already fixed by libvirt v10.5.0. See commit
https://gitlab.com/libvirt/libvirt/-/commit/98f1cf88fa7e0f992d93f376418fbfb3996a9690

The commit message says:

(quote)
We never release the reference on the GSource created for
interrupting the main loop, nor do we remove it from the
main context if our thread is woken up prior to the wakeup
callback firing.

This can result in a leak of GSource objects, along with an
ever growing list of GSources attached to the main context,
which will gradually slow down execution of the loop, as
several operations are O(N) for the number of attached GSource
objects.
(end quote)

This patch has not been backported yet to 10.0.0-2ubuntu8.x for Ubuntu
24.04

** Affects: libvirt (Ubuntu)
     Importance: Undecided
         Status: Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2142757

Title:
  libvirt 10.0.0-2ubuntu8.x - rpc: leak of GSource in use for
  interrupting main loop

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/2142757/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to