Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Jan 2003 19:46:49 -0800
From:      Peter Wemm <peter@wemm.org>
To:        Tim Robbins <tjr@FreeBSD.org>
Cc:        Juli Mallett <jmallett@FreeBSD.org>, current@FreeBSD.org
Subject:   Re: Serious issues with kqueue on sockets on CURRENT. 
Message-ID:  <20030111034649.6A35D2A89E@canning.wemm.org>
In-Reply-To: <20030110215736.A31727@dilbert.robbins.dropbear.id.au> 

next in thread | previous in thread | raw e-mail | index | archive | help
Tim Robbins wrote:
> On Fri, Jan 10, 2003 at 01:30:16AM -0800, Juli Mallett wrote:
> 
> > Lately, the data field for sockets, which holds bytes ready (in the EVFILT_
> > READ case) to be read, is computed to be zero.  This means that if you have
> > a low watermark which is >0 per the kq, THE EVENT WILL NEVER HAPPEN.  Not t
    o
> > mention that this means when the event IS triggered properly (if you can
> > call it that), it is always said to have =ZERO= bytes ready.
> [...]
> 
> I can definitely reproduce this here and also fairly angry about it.
> In addition to what you mentioned, fstat() gives an incorrect st_size
> result now and it's likely that non-NOTE_LOWAT low watermarks are
> firing too early as well.
> 
> Ugly test program @ http://people.freebsd.org/~tjr/kq.c

In case anybody wants to play, I seem to recall some changes in uipc_socket.c
that caused some problems (totally hosed the resolver) a while back:
----------------------------
revision 1.134
date: 2002/11/01 21:27:59;  author: kbyanc;  state: Exp;  lines: +1 -1
Track the number of non-data chararacters stored in socket buffers so that
the data value returned by kevent()'s EVFILT_READ filter on non-TCP
sockets accurately reflects the amount of data that can be read from the
sockets by applications.

PR:             30634
Reviewed by:    -net, -arch
Sponsored by:   NTT Multimedia Communications Labs
MFC after:      2 weeks
----------------------------
revision 1.136
date: 2002/11/05 18:48:46;  author: kbyanc;  state: Exp;  lines: +1 -1
Fix filt_soread() to properly flag a kevent when a 0-byte datagram is
received.

Verified by:    dougb, Manfred Antar <null@pozo.com>
Sponsored by:   NTT Multimedia Communications Labs
----------------------------

Is this related?

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030111034649.6A35D2A89E>