On 11/23/2015 01:59 PM, Jim Fehlig wrote:
Thanks for your comments and ACK'ing the change . I'll submit a V2 that retains
handling of shutdown event in a thread.
While testing V2, I noticed occasionally missing a shutdown event. I can see
from the logs that domain_death_xswatch_callback is called, a matching domain is
found, and shutdown is being reported
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1227:domain_death_xswatch_callback: [evg=0x7fa2fc002570:0] nentries=200
rc=2 0..61
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1238:domain_death_xswatch_callback: [evg=0x7fa2fc002570:0]
got=domaininfos[0] got->domain=0
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1264:domain_death_xswatch_callback: exists shutdown_reported=0
dominf.flags=ffff0020
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1238:domain_death_xswatch_callback: [evg=0x7fa34c007e20:61]
got=domaininfos[0] got->domain=0
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1238:domain_death_xswatch_callback: [evg=0x7fa34c007e20:61]
got=domaininfos[1] got->domain=61
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1264:domain_death_xswatch_callback: exists shutdown_reported=0
dominf.flags=4
2015-11-23 17:01:09 MST libxl: debug:
libxl.c:1276:domain_death_xswatch_callback: shutdown reporting
Seems the call to libxl__event_occurred never pokes libvirt's call to
libxl_event_wait. Interestingly, starting another domain does cause
libxl_event_wait to return with the missing shutdown event.
I'm testing on a fairly recent (2 weeks) git master. I'm not familiar with the
libxl poller code and will need to instrument that a bit to understand why
libxl_event_wait isn't poked.
Regards,
Jim