On Thu, Jul 09, 2015 at 06:47:51PM +0100, Ian Jackson wrote: > It can happen that an fd is deregistered, and closed, and then a new > fd opened, and reregistered, all while another thread is in poll(). > > If this happens poll might report POLLNVAL, but the event loop would > think that the fd was supposed to have been valid, and then fail an > assertion: > libxl_event.c:1183: afterpoll_check_fd: Assertion `poller->fds_changed || > !(fds[slot].revents & 0x020)' failed. > > We can't simply ignore POLLNVAL because if we have bugs which cause > messed-up fds, it is a serious problem which we really need to detect. > > Instead, add extra tracking to spot when this possibility arises, and > abort on POLLNVAL if we are sure that it is unexpected. > > Reported-by: Jim Fehlig <jfeh...@suse.com> > Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> > CC: Jim Fehlig <jfeh...@suse.com>
Acked-by: Wei Liu <wei.l...@citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel