[libvirt] [PATCH 3/4] vz: fix notification subscription

Maxim Nestratov mnestratov at virtuozzo.com
Fri Jan 29 08:58:13 UTC 2016


28.01.2016 18:38, Mikhail Feoktistov пишет:
> Bug cause:
> Update the domain that is subscribed to hypervisor notification.
> LoadDomain() rewrites notifications fields in vzDomObj structure and makes domain as "unsubscribed".
> Fix:
> Initialize notification fields in vzDomObj only if we create a new domain.
> And do not reinitialize these fields if we update domain (by calling LoadDomain with olddom argument)
> ---
>   src/vz/vz_sdk.c | 13 ++++++-------
>   1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
> index 40ab2d9..6fb2a97 100644
> --- a/src/vz/vz_sdk.c
> +++ b/src/vz/vz_sdk.c
> @@ -1270,6 +1270,12 @@ prlsdkLoadDomain(vzConnPtr privconn,
>       if (!olddom) {
>           if (VIR_ALLOC(pdom) < 0)
>               goto error;
> +        pdom->cache.stats = PRL_INVALID_HANDLE;
> +        pdom->cache.count = -1;
> +        if (virCondInit(&pdom->cache.cond) < 0) {
> +            virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot initialize condition"));
> +            goto error;
> +        }
>       } else {
>           pdom = olddom->privateData;
>       }
> @@ -1281,13 +1287,6 @@ prlsdkLoadDomain(vzConnPtr privconn,
>   
>       def->id = -1;
>   
> -    pdom->cache.stats = PRL_INVALID_HANDLE;
> -    pdom->cache.count = -1;
> -    if (virCondInit(&pdom->cache.cond) < 0) {
> -        virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot initialize condition"));
> -        goto error;
> -    }
> -
>       if (prlsdkGetDomainIds(sdkdom, &def->name, def->uuid) < 0)
>           goto error;
>   
Actually I'm not sure this patch is necessary at all as soon as you 
rewrite this function in the next patch.
The problem you are fixing could be just mentioned there.




More information about the libvir-list mailing list