[libvirt] [PATCH] vz: Fix error messages in libvirt log caused by unhadled events

Nikolay Shirokovskiy nshirokovskiy at parallels.com
Mon Jun 22 13:44:04 UTC 2015



On 22.06.2015 16:00, Mikhail Feoktistov wrote:
> 
> 22.06.2015 14:22, Maxim Nestratov пишет:
>> 22.06.2015 14:15, Mikhail Feoktistov пишет:
>>> We need to handle events with PIE_DISPATCHER type.
>> Could you please shed some more light on why we need this. I guess it fixes some problem, so more explanation could be useful.
> If the configuration of the instance has been modified, for example added disk or network device, then hypervisor
> sends event with prlIssuerType = PIE_DISPATCHER and EventType = PET_DSP_EVT_VM_CONFIG_CHANGED
> We should handle this event in prlsdkHandleVmEvent function to update instance's XML config.
> 
This was breaked by my commit c71f5f8cee3fe4078c3ab8aa7c46de7210b468c6
The only event of issuer type PIE_VIRTUAL_MACHINE is performace event, all
others events issuer type is PIE_VIRTUAL_MACHINE. I was miguided
by event names:
PET_DSP_EVT_VM_PERFSTATS
PET_DSP_EVT_VM_UNREGISTERED


>>> Do not write error messages to log in case of unhandled event types.
>> Again, please explain why we shouldn't log them as errors if we return them as failure.
> prlsdkHandleVmEvent is a common handler and it recieves many events.
> We handle only part of them. In case we don't handle event, we return error code to a caller function,
> which should make a decision whether to write error message to log.

This also restores behaviour before named commit.
>>> ---
>>>   src/parallels/parallels_sdk.c |    4 ++--
>>>   1 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
>>> index 34605ea..d208c19 100644
>>> --- a/src/parallels/parallels_sdk.c
>>> +++ b/src/parallels/parallels_sdk.c
>>> @@ -1685,8 +1685,7 @@ prlsdkHandleVmEvent(parallelsConnPtr privconn, PRL_HANDLE prlEvent)
>>>               return prlsdkHandleVmRemovedEvent(privconn, uuid);
>>>               break;
>>>           default:
>>> -            virReportError(VIR_ERR_INTERNAL_ERROR,
>>> -                       _("Can't handle event of type %d"), prlEventType);
>>> +            VIR_DEBUG("Skipping event type %d", prlEventType);
>>>               return PRL_ERR_FAILURE;
>>>       }
>>>   @@ -1721,6 +1720,7 @@ prlsdkEventsHandler(PRL_HANDLE prlEvent, PRL_VOID_PTR opaque)
>>>         switch (prlIssuerType) {
>>>           case PIE_VIRTUAL_MACHINE:
>>> +        case PIE_DISPATCHER:
>>>               pret = prlsdkHandleVmEvent(privconn, prlEvent);
>>>               break;
>>>           default:
>>
> 




More information about the libvir-list mailing list