Dirk-Willem van Gulik wrote:
>
> On Tue, 24 Jul 2001, Justin Erenkrantz wrote:
>
> > On Tue, Jul 24, 2001 at 06:07:03PM -0400, Greg Ames wrote:
> > > * an assert() trap, also in apr_sendfile, for the problem which is
> > > responsible for the most core dumps on daedalus (APR_SUCCESS + 0 bytes
> > > sent - wtf??), and
> >
> > Could this be from sendfile returning EAGAIN?
> >
> > When testing it on Solaris, sendfilev would return EAGAIN and 0 bytes
> > sent if the socket isn't ready yet. (FreeBSD has the closest
> > semantics to Solaris as any others out there.) -- justin
>
> Hmm - are you sure you do not get an EPIPE in that case ? Peraps it should
> be
> /* FreeBSD's sendfile can return -1/EAGAIN even if it
> * sent bytes. Sanitize the result so we get normal EAGAIN
> * semantics w.r.t. bytes sent.
> */
> if ((rv == -1) &&
> ((errno == EAGAIN) || (errno == EPIPE )) &&
> (nbytes))
> {
> rv = 0;
> }
I don't think so. EPIPE usually means the connection is gone,
permanently. We just return the error to the caller, and the request
dies, as it should.
Greg