sendfile data corruption

Andre Oppermann andre at freebsd.org
Sun Nov 12 06:43:28 PST 2006


Pawel Worach wrote:
> Andre Oppermann wrote:
> 
>>
>> I'm looking into the problem.  Please try a binary FTP transfer as well
>> and check if the checksums match. ftpd uses sendfile(2) as well but w/o
>> headers or trailers and does the send in one swoop.
>>
> 
> Oh, didn't think of that, ftpd is ok, transferring a 64MB file does not 
> trash it. Meanwhile a couple of other things where tested, SMP disabled 
> (removed from kernel config), added some printf's which when printing to 
> a serial console moves the offset where the breakage begins to 
> 0x01000000, sometimes.

OK, I found the bug.  The sent byte count reporting was incorrect.  While
doing the sendfile(2) rewrite I got lost in the mixup of the FreeBSD 4.x
bug for bug compatibility.

Please try this patch:

  http://people.freebsd.org/~andre/sendfile_fix-20061112.diff

It fixes apache 2.0.59 for me.  For some reason lighttpd didn't suffer
from this problem, even w/o the fix.  Unfortunately that's what I tested
the rewrite against.

-- 
Andre


More information about the freebsd-current mailing list