[libvirt] [PATCH 0/4] vz: rework domain creation

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Thu Feb 11 07:14:26 UTC 2016



On 10.02.2016 12:39, Mikhail Feoktistov wrote:
> Patches 1 and 2 make preparation for patch 4
> 
> Patch 3 fixes notification subscription
> To get domain info we should receive and handle notification from hypervisor
> 
> Patch 4 fixes race condition when adding domain to domains list
> Race condition:
> User calls defineXML to create new instance.
> The main thread from vzDomainDefineXMLFlags() creates new instance by prlsdkCreateVm.
> Then this thread calls prlsdkAddDomain to add new domain to domains list.
> The second thread receives notification from hypervisor that new VM was created.
> It calls prlsdkHandleVmAddedEvent() and also tries to add new domain to domains list.
> These two threads call virDomainObjListFindByUUID() from prlsdkAddDomain() and don't find new domain.
> So they add two domains with the same uuid to domains list.
> 
> Mikhail Feoktistov (4):
>   vz: make output arguments in prlsdkGetDomainIds as optional
>   vz: remove unused struct field
>   vz: fix notification subscription
>   vz: fix race condition when adding domain to domains list
> 
>  src/vz/vz_driver.c |  13 ++-
>  src/vz/vz_sdk.c    | 261 ++++++++++++++++++++++-------------------------------
>  src/vz/vz_sdk.h    |   7 +-
>  src/vz/vz_utils.c  |  44 +++++++++
>  src/vz/vz_utils.h  |   5 +-
>  5 files changed, 174 insertions(+), 156 deletions(-)
> 
ACK to the series, but don't forget to put correct patch version in subject.




More information about the libvir-list mailing list