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
> 
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to