Specifically this behavioural change we think is the cause:

        if (dbus_pending_call_get_completed(pendingReply)) {
            virNetDaemonGotInhibitReply(pendingReply, dmn);
        } else {
            dbus_pending_call_set_notify(pendingReply,
                                         virNetDaemonGotInhibitReply,
                                         dmn, NULL);
        }


if dbus_pending_call_get_completed(pendingReply) is true, then 
virNetDaemonGotInhibitReply is called directly which attempts to re-lock the 
same mutex from the same thread (its locked one frame above) resulting in the 
thread dead-locking itself.

Obviously this is not always true, so sometimes the call to
virNetDaemonGotInhibitReply is deferred, where the mutex lock *is*
appropriate in virNetDaemonGotInhibitReply.

This is new in 3.6.0.

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

Title:
  libvirtd hangs after # instance creation events

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

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

Reply via email to