[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] [nicholas.marriott@xxxxxxxxx: libevent and invalid fds]



Ah, hmm... I've checked FreeBSD and it is the same, EPIPE, I don't have
a NetBSD box but I might be able to set one up tomorrow night if nobody
with one speaks up.




On Wed, Feb 08, 2012 at 09:16:41PM -0500, Nick Mathewson wrote:
> On Wed, Feb 8, 2012 at 12:19 PM, Nicholas Marriott
> <nicholas.marriott@xxxxxxxxx> wrote:
> > On Wed, Feb 08, 2012 at 11:37:45AM -0500, Nick Mathewson wrote:
> >> On Tue, Feb 7, 2012 at 1:47 PM, Nicholas Marriott
> >> <nicholas.marriott@xxxxxxxxx> wrote:
> >> > Forwarding this message to ML at Nick's request...
> >> >
> >> > Hi
> >> >
> >> > You may remember a few months ago you fixed a problem with kqueue and
> >> > EPIPE on pipes - I backported this fix to 1.4 and recently applied it to
> >> > OpenBSD.
> >> >
> >> > However, this is causing problems with Google Chrome. From what we can
> >> > gather it appears the problem is with EBADF - when kqueue returns EBADF
> >> > for an fd, libevent fires the read callback, same as for EPIPE. This
> >> > makes Chrome segfault somewhere in a huge mess of C++ that I can't
> >> > figure my way through.
> >>
> >> Hm. ?So IIRC, we first added that EBADF in, it was (supposedly)
> >> because some kqueue implementations produced EBADF in response to one
> >> side of a pipe being closed while we were watching the other with
> >> kqueue.
> >
> > I don't know - previously it would continue on EBADF (plus EINVAL and
> > ENOENT) but when that appeared, shrug...
> 
> Looks like it was 1fd34ab424b45f48dfeece108910978c79a8b7f6.  According
> to that commit message, netbsd is the platform that causes problematic
> behavior with EBADF.
> 
> Does anybody have a netbsd installation handy to try that little test
> program I attached earlier in the thread?
> 
> -- 
> Nick
> ***********************************************************************
> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
> unsubscribe libevent-users    in the body.
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.