Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Martin Kletzander
On Tue, Jan 26, 2016 at 01:31:25PM +0300, Maxim Nestratov wrote: 26.01.2016 12:29, Martin Kletzander пишет: On Mon, Jan 25, 2016 at 12:16:12PM +0300, Maxim Nestratov wrote: A pretty nasty deadlock occurs while trying to rename a VM in parallel with virDomainObjListNumOfDomains. The short

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Michal Privoznik
On 25.01.2016 10:16, Maxim Nestratov wrote: > A pretty nasty deadlock occurs while trying to rename a VM in parallel > with virDomainObjListNumOfDomains. > The short description of the problem is as follows: > > Thread #1: > > qemuDomainRename: > --> aquires domain lock by

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Martin Kletzander
On Mon, Jan 25, 2016 at 12:16:12PM +0300, Maxim Nestratov wrote: A pretty nasty deadlock occurs while trying to rename a VM in parallel with virDomainObjListNumOfDomains. The short description of the problem is as follows: Thread #1: qemuDomainRename: --> aquires domain lock by

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Maxim Nestratov
26.01.2016 12:29, Martin Kletzander пишет: On Mon, Jan 25, 2016 at 12:16:12PM +0300, Maxim Nestratov wrote: A pretty nasty deadlock occurs while trying to rename a VM in parallel with virDomainObjListNumOfDomains. The short description of the problem is as follows: Thread #1:

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Jiri Denemark
On Tue, Jan 26, 2016 at 13:26:32 +0100, Michal Privoznik wrote: > On 25.01.2016 10:16, Maxim Nestratov wrote: ... > > > > virCheckFlags(0, ret); > > > > -if (!(vm = qemuDomObjFromDomain(dom))) > > +virObjectLock(driver->domains); > > This is rather ugly. While driver->domains is

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Martin Kletzander
On Tue, Jan 26, 2016 at 02:14:23PM +0100, Jiri Denemark wrote: On Tue, Jan 26, 2016 at 13:26:32 +0100, Michal Privoznik wrote: On 25.01.2016 10:16, Maxim Nestratov wrote: ... > > virCheckFlags(0, ret); > > -if (!(vm = qemuDomObjFromDomain(dom))) > +virObjectLock(driver->domains);

Re: [libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-26 Thread Maxim Nestratov
26.01.2016 16:33, Martin Kletzander пишет: On Tue, Jan 26, 2016 at 02:14:23PM +0100, Jiri Denemark wrote: On Tue, Jan 26, 2016 at 13:26:32 +0100, Michal Privoznik wrote: On 25.01.2016 10:16, Maxim Nestratov wrote: ... [snip] What if, instead of introducing bunch of Locked() functions we

[libvirt] [PATCH] qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix

2016-01-25 Thread Maxim Nestratov
A pretty nasty deadlock occurs while trying to rename a VM in parallel with virDomainObjListNumOfDomains. The short description of the problem is as follows: Thread #1: qemuDomainRename: --> aquires domain lock by qemuDomObjFromDomain -> waits for domain list lock in any