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

From: Eric Dumazet <[email-masked]>
Date: Wed, 16 Jul 2008 07:38:02 +0200

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)

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