|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Current LibXL Status
Ian Campbell writes ("Re: [Xen-devel] Current LibXL Status"):
> The only one I can find which isn't one of this is
> in libxl__event_disaster, and that is only if the applications (or language
> bindings) haven't provided a suitable disaster callback.
libxl__event_disaster can currently happen in the following cases.
Disasters which are specific to a specific requested event (type!=0):
xc_domain_getinfolist failure (breaks reporting domain death, only
xw_write failure for acknowledging disk eject (breaks reporting
ejects, only)
General disasters (type==0) due to xenstore problems:
POLLERR or POLLHUP on xenstore fd
xs_check_watch fails (represents trouble on xenstore fd or with xenstore)
xs_read for domain death check
General disasters (type==0) due to hypercall trouble:
xenevtchn_pending fails other than with EAGAIN
(unrequested) event other than POLLIN on evtchn fd
General disasters (type==0) due to syscall failure:
poll syscall fails
(unrequested) event other than POLLIN on self-pipe
read() or write() fails on a self-pipe (other than EAGAIN/EWOULDBLOCK)
waitpid() syscall fails
General disasters (type==0) induced by the application:
waitpid reports ECHILD when we know we have a child (probably,
something else in the process reaped it; arguably this should abort)
application's childproc_hooks->reaped_callback failure
Disasters are not reported unless it is impossible to proceed. So in
general it is not possible for a process to recover from a disaster
reported by libxl.
But disasters are never expected. They should occur only if
everything is totally doomed anyway. Having a daemon crash is a
perfectly reasonable response.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |