From d5f0cf990bc2850f5b8d70fdaacb3ae1e5a0b86b Mon Sep 17 00:00:00 2001 From: Mikhail Feoktistov Date: Wed, 10 Feb 2016 12:39:13 +0300 Subject: [PATCH] vz: fix notification subscription 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 3b7d7b3ad2..4423788eee 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1275,6 +1275,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; } @@ -1286,13 +1292,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; -- GitLab