On Wed, May 03, 2006 at 05:46:09PM +0200, Niklas Edmundsson wrote:
> 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)
OK, what filesystem? Colm had reported the same thing on Debian/IA64,
which was on an NFS mount, IIRC. If you adjust apr_brigade_insert_file
to only allow buckets of MAX_BUCKET_SIZE regardless, i.e. change the
conditional to:
if (length < MAX_BUCKET_SIZE) {
does that work?
joe