Hello, >From what I've read, Apache should understand that it needs to apply the byterange filter whenever $r->sendfile is called and the Range: header is present in the incoming request. However what I'm seeing is that the entire file is returned for each byte range requested by the client.
Access log serving off disk in Apache2: *.*.*.* - - [17/Jun/2009:19:50:30 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 1 "-" "-" *.*.*.* - - [17/Jun/2009:19:50:31 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 435996 "-" "-" *.*.*.* - - [17/Jun/2009:19:50:30 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 2097152 "-" "-" Serving from perl handler: *.*.*.* - - [18/Jun/2009:10:11:43 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-" *.*.*.* - - [18/Jun/2009:10:11:45 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-" *.*.*.* - - [18/Jun/2009:10:11:45 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-"
-------------8<---------- Start Bug Report ------------8<---------- 1. Problem Description: Hello, From what I've read, Apache should understand that it needs to apply the byterange filter whenever $r->sendfile is called and the Range: header is present in the incoming request. However what I'm seeing is that the entire file is returned for each byte range requested by the client. Access log serving off disk in Apache2: *.*.*.* - - [17/Jun/2009:19:50:30 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 1 "-" "-" *.*.*.* - - [17/Jun/2009:19:50:31 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 435996 "-" "-" *.*.*.* - - [17/Jun/2009:19:50:30 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 206 2097152 "-" "-" Serving from perl handler: *.*.*.* - - [18/Jun/2009:10:11:43 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-" *.*.*.* - - [18/Jun/2009:10:11:45 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-" *.*.*.* - - [18/Jun/2009:10:11:45 -0400] "GET /mygcx/test/flvplayernew17.flv HTTP/1.1" 200 2533148 "-" "-" 2. Used Components and their Configuration: *** mod_perl version 2.000004 *** using /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/Apache2/BuildConfig.pm *** Makefile.PL options: MP_APR_CONFIG => /usr/bin/apr-1-config MP_APR_LIB => aprext MP_APXS => /usr/sbin/apxs MP_COMPAT_1X => 1 MP_GENERATE_XS => 1 MP_LIBNAME => mod_perl MP_USE_DSO => 1 *** httpd Server version: Apache/2.2.3 Server built: May 10 2009 11:14:09 Server's Module Magic Number: 20051115:3 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="logs/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" *** (apr|apu)-config linking info -laprutil-1 -lldap -llber -ldb-4.3 -lexpat -lapr-1 -lpthread -ldl *** /usr/bin/perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.18-128.1.1.el5, archname=i386-linux-thread-multi uname='linux hs20-bc2-5.build.redhat.com 2.6.18-128.1.1.el5 #1 smp mon jan 26 13:58:24 est 2009 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Dversion=5.8.8 -Dmyhostname=localhost -dperladmin=r...@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-44)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.5.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.5' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Mar 25 2009 11:14:47 %ENV: PERL_LWP_USE_HTTP_10="1" @INC: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . *** Packages of interest status: Apache2 : - Apache2::Request : - CGI : 3.15 ExtUtils::MakeMaker: 6.52 LWP : 5.805 mod_perl : - mod_perl2 : 2.000004 3. This is the core dump trace: (if you get a core dump): [CORE TRACE COMES HERE] This report was generated by /usr/bin/mp2bug on Thu Jun 25 17:58:16 2009 GMT. -------------8<---------- End Bug Report --------------8<---------- Note: Complete the rest of the details and post this bug report to modperl <at> perl.apache.org. To subscribe to the list send an empty email to modperl-subscr...@perl.apache.org.
mod_perl2-sendfile-bug.tar.gz
Description: GNU Zip compressed data