[libvirt] [libvirt-users] event-test.py cannot detects domain shutdown

Jim Fehlig jfehlig at suse.com
Thu Feb 20 23:15:42 UTC 2014


Jim Fehlig wrote:
> Cole Robinson wrote:
>   
>> On 02/18/2014 10:45 PM, Jim Fehlig wrote:
>>   
>>     
>>> Cole Robinson wrote:
>>>     
>>>       
>>>> On 02/18/2014 05:12 AM, Kim Larry wrote:
>>>>   
>>>>       
>>>>         
>>>>> The thing I found today is that if libvirt uses xend driver, shutdown events
>>>>> are delivered, but if libvirt uses libxl drvier, doesn't show up anything. It
>>>>> seems there are bugs on shutdown event, so I did dig into the libvirt source
>>>>> briefly, but I couldn't find where libxl driver calls event callback.
>>>>>
>>>>> Any help will be greatly appreciated. Especially someone who is familiar with
>>>>> xen code.
>>>>>
>>>>>     
>>>>>         
>>>>>           
>>>> Jim, does this sound familiar?
>>>>   
>>>>       
>>>>         
>>> Looks like the event handler only queues a crashed event when receiving
>>> the shutdown event from libxl.  The attached patch should fix it, but I
>>> think the logic could be further improved.  I'll look at doing that
>>> tomorrow.
>>>
>>> Regards,
>>> Jim
>>>
>>> From c05615b29f8870d20b4457a2e8abe5e4195275c2 Mon Sep 17 00:00:00 2001
>>> From: Jim Fehlig <jfehlig at suse.com>
>>> Date: Tue, 18 Feb 2014 20:34:47 -0700
>>> Subject: [PATCH] libxl: queue shutdown event on domain shutdown
>>>
>>> Emmit libvirt shutdown event when receiving LIBXL_SHUTDOWN_REASON_POWEROFF
>>> event from libxl.
>>>
>>> Signed-off-by: Jim Fehlig <jfehlig at suse.com>
>>> ---
>>>  src/libxl/libxl_driver.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
>>> index 8e4242a..8d5e101 100644
>>> --- a/src/libxl/libxl_driver.c
>>> +++ b/src/libxl/libxl_driver.c
>>> @@ -383,6 +383,9 @@ libxlDomainShutdownThread(void *opaque)
>>>                                             VIR_DOMAIN_EVENT_STOPPED_CRASHED);
>>>                  reason = VIR_DOMAIN_SHUTOFF_CRASHED;
>>>              } else {
>>> +                dom_event = virDomainEventLifecycleNewFromObj(vm,
>>> +                                           VIR_DOMAIN_EVENT_STOPPED,
>>> +                                           VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
>>>                  reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
>>>              }
>>>              libxlVmReap(driver, vm, reason);
>>>     
>>>       
>> ACK, looks fine to me, but I'm guessing the REBOOT handling right below also
>> needs an event dispatched. Probably best to see what the qemu or test driver
>> do for reboot and copy it.
>>     

I've pushed this patch.

> Looks like there is no explicit reboot event emitted, only a shutdown
> event when <on_reboot> is set to 'destroy'.  Sadly, the libxl driver is
> currently ignoring the <on_*> event configuration :-(.  I'll work on a
> fix for this.
>   

And sent a series to fix this and cleanup the logic a bit

https://www.redhat.com/archives/libvir-list/2014-February/msg01264.html

Regards,
Jim




More information about the libvir-list mailing list