[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#494768: apache2 cannot use sendfile() on CIFS partitions



Package: apache2
Version: 2.2.9-6
Severity: important


Apache2 cannot send more than a few kilobytes of a file mounted over 
CIFS.  This causes most web browsers to choke when downloading, 
anything larger than a small HTML file.  Wget will eventually succeed, 
attempting to get the file repeatedly, accessing a few kilobytes at a 
time.

Grabbing the file with wget will yield something like this:

wget http://<server>/foo.pdf
--2008-08-11 10:04:44--  
http://<server>/foo.pdf
Resolving <server>... <IP>
Connecting to <server>|<IP>|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 52503 (51K) [application/pdf]
Saving to: `foo.pdf'

22% [=======>                               ] 11,584      --.-K/s   in 0.06s   

2008-08-11 10:04:44 (176 KB/s) - Connection closed at byte 11584. Retrying.

--2008-08-11 10:04:45--  (try: 2)  
http://<server>/foo.pdf
Connecting to <server>|<IP>|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 52503 (51K), 40919 (40K) remaining [application/pdf]
Saving to: `foo.pdf'

43% [++++++++=======>                       ] 22,724      --.-K/s   in 0s

2008-08-11 10:04:45 (315 MB/s) - Connection closed at byte 22724. Retrying.

<snip>

...and this will continue until the file is downloaded, sometimes.

Files on the local disk are unaffected.  

After poking around for a while I came across this:

http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile

Disabling sendfile functionality on the directories in question provided 
an adequate workaround.

This was working as of 2.2.8-4~lenny1, but as of this morning I was 
notified that some files could not be downloaded from our webserver.  
That being said, I'm not sure when the breakage happened - sometime 
between 2.2.8-4~lenny1 and 2.2.9-6.  Alternatively is the 2.6.25 kernel 
update to blame?  If so maybe the kernel team should be cc'd on this?

Every other program (e.g., cp or scp) can access the files mounted over 
CIFS.  Apache2 is the only program having issues.  The CIFS server is 
running Solaris 10, Samba 3.0.28.

This problem also appears to have reared it head somewhat recently on 
Fedora:

http://www.omgili.com/mailinglist/linux-cifs-client/lists/samba/org/A4077CD1A935AA47AD3F4141EB2EE78F9723F6hermes.html


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.25-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash



Reply to: