Subject: Re: sendfile() broken with 2.6.26 + Apache 2 ?

From: Ian Jeffray <[email-masked]>
Date: Wed, 16 Jul 2008 08:30:16 +0100

Hi Eric,

Thanks for directing me to a better list.

Further responses below:

Eric Dumazet wrote:
> CC to netdev where this report might find better answers
> 
> Ian Jeffray a écrit :
>> All,
>>
>> I moved from kernel 2.6.25.4 to 2.6.26 yesterday and observed that
>> large files sent via Apache2 are partially corrupt.
>>
>> This appears to be linked to sendfile() -- disabling the use of
>> sendfile in the apache config (EnableSendfile Off) allows it to
>> function as normal.
>>
>> My system is a simple Core2Duo running Debian lenny/sid; nothing
>> special, and I have never observed problems like this before.
>>
>> The problem feels certainly related to sendfile() since the data
>> reads correctly from disc in other programs, and via CIFS etc.
>>
>> The corruption happens part-way in to the file... I've no exact
>> figure but it would seem like maybe 32KB -- I'm seeing broken
>> PNGs served from Apache, where the top few dozen lines decode
>> correctly, and the rest is garbage.
>>
>> I've made basically no configuration changes between 2.6.25.4 and
>> 2.6.26 and have explicitly tried both enabling and disabling the
>> new PAT support to no effect.
>>
>> This is completely repeatable and reproducible.
>>
>> Is anyone else seeing this broken behaviour?
>>
> 
> 
> What kind of network adapter are you using ? (lspci | grep -i ether)

02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit 
Ethernet Adapter (rev b0)

> If you disable TCP segmentation offload on this NIC (ethtool -K eth0 tso 
> off) , is this problem still present ?

Wow.  That 'solves' the problem!  Great.

Does this therefore point to an attansic driver issue?

Ian.