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

Martin Kletzander mkletzan at redhat.com
Wed Apr 13 14:33:55 UTC 2022


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>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20220413/8660da45/attachment.sig>


More information about the libvir-list mailing list