From owner-freebsd-threads@FreeBSD.ORG Wed Mar 15 14:16:09 2006 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 30A9B16A400; Wed, 15 Mar 2006 14:16:09 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id C234743D46; Wed, 15 Mar 2006 14:16:08 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.ntplx.net (8.13.5/8.13.5/NETPLEX) with ESMTP id k2FEG7PE001961; Wed, 15 Mar 2006 09:16:07 -0500 (EST) Date: Wed, 15 Mar 2006 09:16:07 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Sven Berkvens-Matthijsse In-Reply-To: <200603151109.k2FB9pCN037532@serv7.ilse.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) Cc: FreeBSD-gnats-submit@freebsd.org, freebsd-threads@freebsd.org Subject: Re: threads/94467: send(), sendto() and sendmsg() are not correct in libc_r X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Mar 2006 14:16:09 -0000 On Wed, 15 Mar 2006, Sven Berkvens-Matthijsse wrote: > > >Number: 94467 > >Category: threads > >Synopsis: send(), sendto() and sendmsg() are not correct in libc_r > >Confidential: no > >Severity: serious > >Priority: medium > >Responsible: freebsd-threads > >State: open > >Quarter: > >Keywords: > >Date-Required: > >Class: sw-bug > >Submitter-Id: current-users > >Arrival-Date: Wed Mar 15 11:10:21 GMT 2006 > >Closed-Date: > >Last-Modified: > >Originator: Sven Berkvens-Matthijsse > >Release: FreeBSD 4.10-STABLE i386 > >Organization: > ilse media BV > >Environment: > System: FreeBSD serv7.ilse.net 4.10-STABLE FreeBSD 4.10-STABLE #23: Wed Aug 4 15:18:52 CEST 2004 root@tango.ilse.net:/usr/obj/usr/src/sys/BAROQUE i386 > > >Description: > send(), sendto() and sendmsg() can return prematurely in the libc_r > implementation. If the socket has space available, but not enough to > accommodate the whole data block at once, the kernel's sendto() will > return with a premature byte count, because all the sockets are always > put into nonblocking mode. However, unlike write(), which does > implement this correctly, the implementation of sendto() and co do not > check for this condition if the thread's notion of the socket was > non-blocking. Instead, it just returns the permature bytecount instead > of starting another sendto()/sendmsg() to complete the action (and > possibly putting the thread to sleep until poll() says it's okay to > try again), like a non-blocking version should. We're not maintaining libc_r any longer, and 4.x is pretty much a dead branch. If you need bug fixes, you need to upgrade to 6.x stable and use libpthread or libthr. -- DE