-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:

When using mod_perl to drive a script that receives a large
textarea from a html form (using POST), the contents
of the textarea gets truncated.

The reason I suspect mod_perl is that I've created a test script
that just dumps stdin to my browser, using no extra modules (i.e. no CGI.pm)

When I do that WITHOUT mod_perl the result is:
- CONTENT_LENGTH: 9737
- actual read: 9737
and everything is displayed

When I do this WITH mod_perl the result is:
- CONTENT_LENGTH: 9737
- actual read: 8192
and the result is only partial. 

Especially the 'nice' 8k boundary makes me a little suspicous.

This behavior is very consistent - no matter what browser, no matter I use CGI.pm or 
don't, with or without Apache::compat().

Perhaps it's a compile option I missed, but in that case it is poorly documented and I 
consider it a bug nonetheless.

The test code is appened at the bottom of this report.

Browser used for most testing: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) 
Gecko/20021022

2. Used Components and their Configuration:

*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
  MP_AP_PREFIX   => /usr/local/apache2
  MP_GENERATE_XS => 1
  MP_LIBNAME     => mod_perl
  MP_USE_DSO     => 1
  MP_USE_STATIC  => 1


*** /usr/local/apache2/bin/httpd -V
Server version: Apache/2.0.43
Server built:   Oct 25 2002 22:37:40
Server's Module Magic Number: 20020903:0
Architecture:   32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6
 -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 HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/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"


*** /usr/bin/perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=linux, osvers=2.4.19-xfs-r1, archname=i686-linux
    uname='linux cdimage 2.4.19-xfs-r1 #1 smp sat sep 14 17:15:33 local time zone must 
be set--see zic i686 authenticamd '
    config_args='-des -Dprefix=/usr -Darchname=i686-linux -Duselargefiles -Dd_dosuid 
-Dlocincpth=  -Dd_semctl_semun -Di_gdbm -Di_db -Di_ndbm'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64',
    optimize='-march=i686 -O3 -pipe',
    cppflags='-fno-strict-aliasing'
    ccversion='', gccversion='3.2', 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, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
    perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
    libc=/lib/libc-2.2.5.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at Oct 21 2002 14:22:04
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /usr/lib/perl5/5.6.1/i686-linux
    /usr/lib/perl5/5.6.1
    /usr/lib/perl5/site_perl/5.6.1/i686-linux
    /usr/lib/perl5/site_perl/5.6.1
    /usr/lib/perl5/site_perl
    .


3. This is the core dump trace: (if you get a core dump):

  [CORE TRACE COMES HERE] - no core dump

This report was generated by t/REPORT on Sun Nov  3 22:05:38 2002 GMT.

-------------8<---------- End Bug Report --------------8<----------

Note: Complete the rest of the details and post this bug report to
dev <at> perl.apache.org. To subscribe to the list send an empty
email to [EMAIL PROTECTED]

The dump script I used:

#---- cut here
#!/usr/bin/perl

my $length = $ENV{"CONTENT_LENGTH"};

my $i = 0;
print "Content-type: text/html\n\n";
my $row;
my $aread = read STDIN,$row,$length;

print "Total length: $length, actual read is $aread <br>";
print "START:";
$row =~ s/%0D%0A/\<br \>/g;
print $row;
print "STOP:";
#--- cut here

The html form I used:
#--- cut here
<html>
<form name="main" action="/dump" method="post">
<textarea name="text" wrap="virtual" rows="17" cols="70" style="width: 99%">
</textarea>
<input type="submit" value="submit" />
</form>
</html>
#--- cut here


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to