virNetDaemonCallInhibit(virNetDaemonPtr dmn
# That seems to be one of the guest creations
490 VIR_DEBUG("dmn=%p what=%s who=%s why=%s mode=%s",
491 dmn, NULLSTR(what), NULLSTR(who), NULLSTR(why), NULLSTR(mode));
[...]
519 virNetDaemonGotInhibitReply(pendingReply, dmn);
And at the same time Thread 1 is via
virNetDaemonRun
# That seems to be the main loop
804 VIR_DEBUG("dmn=%p quit=%d", dmn, dmn->quit);
[...]
829 virObjectLock(dmn);
Both lock against each other.
@James - could you take a look at the owners and/or there should be even without gdb VIR_DEBUG statements with dmn=%p in the log. Especially who is the current owner e.g. in your live case?
In the above [3] Thread 20 is in a lock via:
virNetDaemonCal lInhibit( virNetDaemonPtr dmn InhibitReply( pendingReply, dmn);
# That seems to be one of the guest creations
490 VIR_DEBUG("dmn=%p what=%s who=%s why=%s mode=%s",
491 dmn, NULLSTR(what), NULLSTR(who), NULLSTR(why), NULLSTR(mode));
[...]
519 virNetDaemonGot
And at the same time Thread 1 is via
virNetDaemonRun
# That seems to be the main loop
804 VIR_DEBUG("dmn=%p quit=%d", dmn, dmn->quit);
[...]
829 virObjectLock(dmn);
Both lock against each other.
@James - could you take a look at the owners and/or there should be even without gdb VIR_DEBUG statements with dmn=%p in the log. Especially who is the current owner e.g. in your live case?