On Tuesday 02 March 2010 13:45, Timo Teräs wrote: > Hi, > > Please revert (or fix) commit cb23d93c6845df3f2733a32caa4194e60ef871a7: > *: add/remove safe_, it seems we had a few incorrect uses > > In addition to change safe_* it also changes the poll revents mask checks > incorrectly. > > It can make httpd hang, and busy poll in eternal loop. > > >From manpages: > The field revents is an output parameter, filled by the kernel with > the events that actually occurred. The > bits returned in revents can include any of those specified in events, > or one of the values POLLERR, POLLHUP, > or POLLNVAL. (These three bits are meaningless in the events > field, and will be set in the revents field > whenever the corresponding condition is true.) > > If one gets POLLHUP, it's now never handled in the httpd code, and poll will > keep returning it all the time. > > We really need to close fd when we get POLLERR or POLLHUP. Previously it lead > to read() or write() which would > indicate error and lead to clean up. Now those are just ignored.
Like this? http://busybox.net/downloads/fixes-1.16.0/busybox-1.16.0-POLLHUP.patch -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
