On Thu, Mar 29, 2007 at 02:49:36PM -0500, Frank Wiles wrote:
> On Thu, 29 Mar 2007 10:12:00 +0100
> Stephane Chazelas <suppressed> wrote:
>
> > On Wed, Mar 28, 2007 at 11:46:15AM +0100, Stephane Chazelas wrote:
> > > 1. Problem Description:
> > >
> > > Hiya,
> > >
> > > After querying a mod_perl run CGI, the corresponding apache2
> > > process ends up having its fd 0 and/or fd 1 closed. This then
> > > causes some other CGIs (for instance mod_python's viewvc) to
> > > fail because they are not robust enough to cope with a closed
> > > fd 0.
> >
> > I should add that this is how mod_perl is told to run the CGI
> > script:
> >
> > <IfModule mod_perl.c>
> > <Location /cgi-bin/gnatsweb.pl>
> > SetHandler perl-script
> > PerlResponseHandler ModPerl::PerlRunPrefork
> > PerlOptions +ParseHeaders
> > </Location>
> > </IfModule>
> >
> > I disabled mod_perl for now. But could anyone please indicate
> > whether I'm not using it properly or whether it is indeed a bug
> > or whether that version of Apache is not supported?
>
> Hi Stephane,
>
> This isn't a bug, but a normal aspect of mod_perl. You can however
> re-tie them. I think this page gives you all the info you need:
>
> http://perl.apache.org/docs/1.0/guide/porting.html#STDIN__STDOUT_and_STDERR_streams
[...]
Hi Frank,
the problem I'm talking about is not that the CGI's STDIN/STDOUT
is reaffected. IT's normal for a normal CGI operation, it's that
the fds 0 and 1 are not restored when modperl returns, so that
other handlers run afterwards by the same Apache process (here
my problem was with mod_python) get messed up.
And if you look carefully at the traces, even for the CGI, maybe
perl's STDIN/STDOUT /handles/ were reaffected, but they were not
affected fds 0 and 1, it was not a dup, the CGI's
print STDOUT "...";
actually did a write(16, "..."), so STDOUT was affected another
fd that 1. Tomorrow, I'll try doing a system() within perl, but
I suspect for instance system("echo foo") will no output
anything to the socket.
Cheers,
Stephane
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.