My Common Lisp and Debian blog. For more off topic rants and stuff please see my livejournal blog.

Wednesday, June 11, 2008

google me: sendfile problems

After upgrading an ubuntu LTS server at work proftpd (not my choice) would not transfer files anymore. It would die with:

error using sendfile(): [75] Value too large for defined data type

After searching a little I found the problem: sendfile does not work if the filesystem on which the files are stored is 'special'. Of course we are serving files from a CIFS directory... Sigh.

2 comments:

Anonymous said...

sendfile() is a system call that let's the kernel read in a file and push the data directly into a socket. (this avoids the many kernel-app context switches and data copying that would occur if the app reads in the data itself and then sends it through a socket). It makes sense that they only do this on 'normal' (i guess that means local) filesystems.

So the question really is : doesn't have proftd a (less efficient) fallback for filesystems not supported by sendfile()? I hope for you they do :-)

JC said...

Please check that:

http://www.linuxquestions.org/questions/linux-networking-3/cifs-and-426-sendfile-error-value-too-large-for-defined-data-type-450631/