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: