[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.5] tools/oxenstored: Fix | vs & error in fd event handling
On Wed, Nov 26, 2014 at 08:44:41PM +0000, Dave Scott wrote: > > > On 26 Nov 2014, at 18:41, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > > wrote: > > > > On Wed, Nov 26, 2014 at 06:24:11PM +0000, Dave Scott wrote: > >> > >>> On 26 Nov 2014, at 15:38, Zheng Li <dev@xxxxxxxx> wrote: > >>> > >>> On 26/11/2014 15:09, Andrew Cooper wrote: > >>>> This makes fields 0 and 1 true more often than they should be, resulting > >>>> problems when handling events. > >>> > >>> Indeed, looks like a mistake I made when rewriting the logic terms > >>> lately. The result is POLLUP or POLLERR events being returned in more > >>> categories than we'd interest. Thanks for fixing this! > >>> > >>> Acked-by: Zheng Li <dev@xxxxxxxx> > >> > >> This also looks fine to me > >> > >> Acked-by: David Scott <dave.scott@xxxxxxxxxx> > > > > Would it be possible to get an Reviewed-by please? > > Iâll certainly offer > > Reviewed-by: David Scott <dave.scott@xxxxxxxxxx> OK, Release-Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Thank you. > > Cheers, > Dave > > > > > Thank you. > >> > >> Cheers, > >> Dave > >> > >>> > >>> > >>> Cheers, > >>> Zheng > >>> > >>> > >>>> --- > >>>> > >>>> This was discovered with XenServers internal Coverity instance. I have > >>>> yet to > >>>> work out why the issue is not identified by the upstream coverity > >>>> scanning. > >>>> > >>>> Konrad: This is a bug in the default event handling used by oxenstored > >>>> in 4.5, > >>>> as the default switched from select() to poll() in the 4.5 timeframe. It > >>>> would appear that the negative side effects are limited to just logspam > >>>> about > >>>> certain clients attempting invalid actions, but I can't rule out > >>>> anything more > >>>> problematic. > >>>> --- > >>>> tools/ocaml/xenstored/select_stubs.c | 4 ++-- > >>>> 1 file changed, 2 insertions(+), 2 deletions(-) > >>>> > >>>> diff --git a/tools/ocaml/xenstored/select_stubs.c > >>>> b/tools/ocaml/xenstored/select_stubs.c > >>>> index 4a8edb5..af72b84 100644 > >>>> --- a/tools/ocaml/xenstored/select_stubs.c > >>>> +++ b/tools/ocaml/xenstored/select_stubs.c > >>>> @@ -56,8 +56,8 @@ CAMLprim value stub_select_on_poll(value fd_events, > >>>> value timeo) { > >>>> events = Field(Field(fd_events, i), 1); > >>>> > >>>> if (c_fds[i].revents & POLLNVAL) unix_error(EBADF, > >>>> "select", Nothing); > >>>> - Field(events, 0) = Val_bool(c_fds[i].events | > >>>> POLLIN && c_fds[i].revents & (POLLIN |POLLHUP|POLLERR)); > >>>> - Field(events, 1) = Val_bool(c_fds[i].events | > >>>> POLLOUT && c_fds[i].revents & (POLLOUT|POLLHUP|POLLERR)); > >>>> + Field(events, 0) = Val_bool(c_fds[i].events & > >>>> POLLIN && c_fds[i].revents & (POLLIN |POLLHUP|POLLERR)); > >>>> + Field(events, 1) = Val_bool(c_fds[i].events & > >>>> POLLOUT && c_fds[i].revents & (POLLOUT|POLLHUP|POLLERR)); > >>>> Field(events, 2) = Val_bool(c_fds[i].revents & POLLPRI); > >>>> > >>>> } > >>>> > >> > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxx > > http://lists.xen.org/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |