I believe fd 0 and/or fd 1 are closed in Apache 2 which might be causing the issue.
I had the similar kid of issue - i used following code to fix it $fileno = fileno(STDIN); if ( defined($fileno) and $fileno != 0) { $stdin = IO::Handle->new(); $stdin->fdopen(0, "w") || die "Unable to open STDIN using fd 0: $!\n"; } else { $stdin = \*STDIN; } On Wed, Nov 19, 2008 at 7:44 PM, Rashmi Badan <[EMAIL PROTECTED]>wrote: > Hi, > > I load mod_perl into a customized Apache on Windows but when I send a > simple request (http://host:port/perl/testperl.pl - testperl.pl just > prints a simple message) Apache dies and throws the following message > in the error log > > Failed to dup STDIN: Bad file descriptor. > > I see that this is coming from modperl_io_perlio_override_stdin() in > modperl_io.c but do not know why. If I try loading the same module > into plain Apache I don't seem to hit this problem and am able to > access the script just fine. I would appreciate it if someone could > give me some pointers to debug this issue. > > Versions used : > Apache 2.2.9 > mod_perl 2.0.4 > perl 5.10 > > mod_perl.conf. > ------------------------------------------------------------- > LoadFile ${PERL_PATH}/bin/perl510.dll > LoadModule perl_module modules/mod_perl.so > > # > # Setup mod_perl to handle perl cgi scripts from the cgi-bin directory > # > <IfModule mod_alias.c> > <IfModule mod_perl.c> > Alias /perl/ "${APACHE_HOME}/cgi-bin/" > PerlModule ModPerl::Registry > PerlSwitches -I${APACHE_HOME}/mod_perl/lib > > <Location /perl/> > SetHandler perl-script > AddHandler perl-script .pl > PerlResponseHandler ModPerl::Registry > PerlOptions +ParseHeaders > Options +ExecCGI > </Location> > </IfModule> > </IfModule> > ------------------------------------------------------------- > > Thanks, > Rashmi > -- --Shibi Ns--