Seems to be a problem with calling IoFLUSH() on an already flushed handle. This patch seems to fix it for me.
Index: xs/Apache/RequestIO/Apache__RequestIO.h
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h,v
retrieving revision 1.37
diff -u -I$Id -r1.37 Apache__RequestIO.h
--- xs/Apache/RequestIO/Apache__RequestIO.h 14 Mar 2003 05:33:19 -0000 1.37
+++ xs/Apache/RequestIO/Apache__RequestIO.h 2 Jul 2003 14:46:37 -0000
@@ -22,7 +22,7 @@
#define mpxs_output_flush(r, rcfg) \
/* if ($|) */ \
- if (IoFLUSH(PL_defoutgv)) { \
+ if (bytes > 0 && IoFLUSH(PL_defoutgv)) { \
MP_FAILURE_CROAK(modperl_wbucket_flush(rcfg->wbucket, TRUE)); \
}
On Wed, 2003-07-02 at 22:18, Bill Marrs wrote:
> When I use Apache 2.0.46, mod_deflate with mod_perl-1.99_09 (or the latest
> mod_perl-2.0 CVS), perl buffering is off ($|=1), and my perl script prints
> nothing (e.g. 'print "";'), I get the following error:
>
> [Wed Jul 02 10:10:00 2003] [error] 19513: ModPerl::RegistryBB: 20014:Error
> string not specified yet at /var/www/perl/test.pl line 6.
>
> If I switch to running the script under mod_cgi or if I remove the "$|=1;"
> line, I do not get an error.
>
> Here is my script:
>
> #!/usr/bin/perl
> $|=1;
> print "Content-Type: text/html\n\n";
> print "hello world<P>";
> # This line causes the error
> print "";
>
> httpd.conf snipit:
>
> Alias /perl/ /var/www/perl/
> <Location /perl>
> AddOutputFilterByType DEFLATE text/*
> SetOutputFilter DEFLATE
> AllowOverride None
> SetHandler perl-script
> PerlHandler ModPerl::RegistryBB
> PerlSendHeader On
> Options +ExecCGI
> </Location>
>
> I've worked-around this problem by changing my print "" to print " ". It's
> not a major issue for me, I'm just letting you know. Let me know if you
> need any more info.
>
> -bill
>
>
signature.asc
Description: This is a digitally signed message part
