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
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
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
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:
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
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);
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
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