[PATCH 2/2] qemu: fix one more race on undefining and create

Nikolay Shirokovskiy nikolay.shirokovskiy at openvz.org
Wed Apr 13 14:41:31 UTC 2022


ср, 13 апр. 2022 г. в 17:33, Martin Kletzander <mkletzan at redhat.com>:
>
> On Wed, Apr 13, 2022 at 11:43:32AM +0300, Nikolay Shirokovskiy wrote:
> >[1] closes gap in virDomainObjListRemove so that concurrent thread can
> >not step in and obtain the domain while domain is temporary unlocked. But
> >there is another gap exist:
> >
> >thread B - executes create API
> >thread C - executes undefine API
> >
> >- thread A executes some job on domain
> >- threads B and C obtains domain from list and wait for job condition
> >- thread A finishes its job and C grabs job condition, removes domain
> >  from list and finishes
> >- thread B grabs job condition and start the domain, unfortunately
> >  is not in the list already
> >
> >[1] commit c7d1c139ca3402e875002753952e80ce8054374e
> >Author: Martin Kletzander <mkletzan at redhat.com>
> >Date:   Thu Dec 11 11:14:08 2014 +0100
> >
> >    qemu: avoid rare race when undefining domain
> >
> >Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at openvz.org>
>
> Unfortunately not all APIs take jobs (yet), but it can't be worse than
> it is now ;)  Thanks for the patch,
>
> Reviewed-by: Martin Kletzander <mkletzan at redhat.com>

Thanks for the reviews!

Nikolay



More information about the libvir-list mailing list