On Wed, 3 May 2006, Joe Orton wrote:

I've run into apr_brigade_insert_file() creating brigades that's not
possible to sendfile() (EINVAL), this is with httpd-2.2.2 on Ubuntu
Breezy Linux amd64 (64bit). The file in question is 4.3GB, and it
seems that sendfile() doesn't cope with that.

Has anyone else seen this?

No, works fine here.  Can you get strace output for the failing call?

[pid   931] open("/httpcache/HU/zG/8j/_HJBmSBIt0F2CnvQ", O_RDONLY) = 11
...
[pid   931] sendfile(10, 11, [4096], 4571090944) = -1 EINVAL (Invalid argument)

And with the file being 4571095040 bytes, that offset and len seems correct to me...

And just to be sure it isn't my patch, the same without mod_disk_cache loaded:
[pid  5746] 
open("/export/ftp/mirror/media/StarWars-Revelations/revelations-2.iso", 
O_RDONLY) = 11
...
[pid  5746] sendfile(10, 11, [0], 4571090944) = -1 EINVAL (Invalid argument)

It should be noted that in the latter case apr_brigade_insert_file() isn't even used since server/core.c hasn't been converted to use it.

This seems to be some sendfile/sendfile64 mess, any ideas on how to approach it?

/Nikke
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se      |     [EMAIL PROTECTED]
---------------------------------------------------------------------------
 "Hell has no fury as a woman scorned" - Deanna Troi
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Reply via email to