sendfile data corruption

Andre Oppermann andre at freebsd.org
Sun Nov 12 12:58:57 PST 2006


Pawel Worach wrote:
> On 11/12/06, Andre Oppermann <andre at freebsd.org> wrote:
> 
>> 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.
>>
> 
> This fixes it for me, thanks!

Committed in rev. 1.244 of sys/kern/uipc_syscalls.c.

-- 
Andre



More information about the freebsd-current mailing list