[issue1998] kqueue issues with nginx

Sepherosa Ziehau sepherosa at gmail.com
Tue Sep 13 19:44:00 PDT 2011


Well, I think we could handle the problem in kernel in the following way:
- Add EV_NODATA flag
- In the places that sets EV_NODATA, we also set the EV_EOF using the
logic before 8c4ed4265ed709e0ff2e164b292fd6b3febef5d3
- In the places that test EV_EOF, we change it to test EV_NODATA
- In the places that clears EV_EOF, we also clears EV_NODATA

On Wed, Sep 7, 2011 at 3:18 PM, Andrey N. Oktyabrski (via DragonFly
issue tracker) <sinknull at leaf.dragonflybsd.org> wrote:
>
> Andrey N. Oktyabrski <ano at bestmx.ru> added the comment:
>
> I have some problems between nginx and backends too.
> Nginx can not see when the backend closed connection.
> The nginx developers said there is a kqueue problem: kqueue does not set EV_EOF
> flag. They has made test program (attached), which works well under the FreeBSD
> and NetBSD, but do not work properly under DragonFly.
>
> Using "select" or "poll" methods in the nginx solves the problem, but kqueue is
> preferred.
>
> $ uname -iprs
> DragonFly 2.10-RELEASE x86_64 X86_64_GENERIC_SMP
>
> _____________________________________________________
> DragonFly issue tracker <bugs at lists.dragonflybsd.org>
> <http://bugs.dragonflybsd.org/issue1998>
> _____________________________________________________



-- 
Tomorrow Will Never Die





More information about the Bugs mailing list