On Fri, Mar 13, 2009 at 03:34:32PM +0000, Daniel P. Berrange wrote: > Ok, turns out the original patch (though worthwhile) was a red herring. > The core problem was that the event loop was getting confused when we > removed a monitored file handle. It would then start running the wrong > event handler callbacks. So the xenstore watch handler got called even > though no watch was pending :-( This also caused clients to get stuck > because the watch detecting end-of-file on the socket wasn't getting > called. > > The patch fixes the loop which dispatches callbacks, so that it does > not assume the index into 'nfds' matches the index in 'handles'. They > have to be tracked indepedantly, to take account of deleted handles. ACK, this fixes a reproduceable libvirt-cim test problem I was having and we were hitting the same problem, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list