From owner-freebsd-current Fri Jan 10 1:30:17 2003 Delivered-To: freebsd-current@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 931) id 177DC37B401; Fri, 10 Jan 2003 01:30:16 -0800 (PST) Date: Fri, 10 Jan 2003 01:30:16 -0800 From: Juli Mallett To: current@FreeBSD.org, re@FreeBSD.org Subject: Serious issues with kqueue on sockets on CURRENT. Message-ID: <20030110013015.A23399@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i Organisation: The FreeBSD Project X-Alternate-Addresses: , , , , X-Towel: Yes X-LiveJournal: flata, jmallett X-Negacore: Yes Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG First off, I'm very pissed off about this, but not going to bring out the big stick of death, because, well, it can't matter enough if I'm the only poor soul seeing this, despite how many hours I wasted thinking maybe it was the fault of my code. In 5.0-CURRENT, since last month or so, I've been having a number of issues with a project of mine. Said project is an IRC daemon. As I myself am a big fan of FreeBSD and OpenBSD and NetBSD, I chose to use kqueue. I also chose to use pthreads as an excuse to re-familiarise myself with them in the hopes of being able to help out the KSE folks. Happily, the feelings wrt BSD are *very* good with the people I'm writing this for. I've spent a lot of time looking at issues in libc_r that this has raised, but I've had a lot of trouble with sockets going dead, and since October, it simply Hasn't Worked At All. Until I bitched about this on IRC tonight, and found that it works as good as it ever did on OpenBSD. Our kqueue is broken. 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 to 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. You can imagine why this is no fun, and why I'm unhappy to finally figure out that, gee, the problem wasn't mine. This is something which could really use the old behaviour before 5.0, and which I'm sad to see nobody saw so far, or nobody thought was a problem. PLZ FIX K THX LUV juli. -- Juli Mallett AIM: BSDFlata -- IRC: juli on EFnet. OpenDarwin, Mono, FreeBSD Developer. ircd-hybrid Developer, EFnet addict. FreeBSD on MIPS-Anything on FreeBSD. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message