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) <sinkn...@leaf.dragonflybsd.org> wrote: > > Andrey N. Oktyabrski <a...@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 <b...@lists.dragonflybsd.org> > <http://bugs.dragonflybsd.org/issue1998> > _____________________________________________________ -- Tomorrow Will Never Die