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

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



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.