-------- Original Message -------- Subject: Bug report Date: Fri, 14 Sep 2007 10:27:19 -0400 From: Tom Donovan <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] To: modperl@perl.apache.org
-------------8<---------- Start Bug Report ------------8<---------- 1. Problem Description: perl-script handler fails with Apache 2.2.6 on Windows due to changes in stdin/stdout/stderr handles in mpm_winnt Problem occurs with mod_perl 2.0.3 or with current (9/14/2007) SVN trunk. Problem is not seen if Apache is started as a single process > httpd.exe -X This is similar to, but not the same as, Apache bug 43329 http://issues.apache.org/bugzilla/show_bug.cgi?id=43329 which concerns the APR 1.2.11 process-creation changes. This problem can be avoided if \server\mpm\winnt\mpm_winnt.c from Apache 2.2.4 is used - even with APR 1.2.11. Note that server\log.c line 411 also needs to be changed to work with this older mpm_winnt. Failure is at line 128 in modperl_io.c (function modperl_io_perlio_override_stdin) -------------------------------------------------------- modperl_io.c - in function modperl_io_perlio_override_stdin 124 /* open my $oldout, "<&STDIN" or die "Can't dup STDIN: 125 status = do_open(handle_save, "<&STDIN", 7, FALSE, 126 O_RDONLY, 0, Nullfp); 127 if (status == 0) {
128 Perl_croak(aTHX_ "Failed to dup STDIN: %" SVf,
129 } --------------------------------------------------------- 2. Used Components and their Configuration: *** mod_perl version 2.000004 *** using C:\work\mod_perl-trunk\lib\Apache2\BuildConfig.pm *** Makefile.PL options: MP_APR_LIB => aprext MP_COMPAT_1X => 1 MP_GENERATE_XS => 1 MP_LIBNAME => mod_perl MP_USE_DSO => 1 *** httpd.exe -V Server version: Apache/2.2.6 (Win32) Server built: Sep 14 2007 09:44:55 Server's Module Magic Number: 20051115:5 Server loaded: APR 1.2.11, APR-Util 1.2.10 Compiled using: APR 1.2.11, APR-Util 1.2.10 Architecture: 32-bit Server MPM: WinNT threaded: yes (fixed thread count) forked: no Server compiled with.... -D APACHE_MPM_DIR="server/mpm/winnt" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/apache" -D SUEXEC_BIN="/apache/bin/suexec" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error.log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" *** (apr|apu)-config linking info (apr|apu)-config scripts were not found *** C:\Perl\bin\perl.exe -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=MSWin32, osvers=5.00, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' libpth=\lib libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_SITECUSTOMIZE Locally applied patches: ActivePerl Build 822 [280952] Iin_load_module moved for compatibility with build 806 PerlEx support in CGI::Carp Less verbose ExtUtils::Install and Pod::Find Patch for CAN-2005-0448 from Debian with modifications Rearrange @INC so that 'site' is searched before 'perl' Partly reverted 24733 to preserve binary compatibility MAINT31223 plus additional changes 31490 Problem bootstraping Win32CORE 31324 Fix DynaLoader::dl_findfile() to locate .so files again 31214 Win32::GetLastError fails when first called 31211 Restore Windows NT support 31188 Problem killing a pseudo-forked child on Win32 29732 ANSIfy the PATH environment variable on Windows 27527,29868 win32_async_check() can loop indefinitely 26970 Make Passive mode the default for Net::FTP 26379 Fix alarm() for Windows 2003 24699 ICMP_UNREACHABLE handling in Net::Ping Built under MSWin32 Compiled at Jul 31 2007 19:34:48 %ENV: PERL_LWP_USE_HTTP_10="1" @INC: C:/Perl/site/lib C:/Perl/lib . *** Packages of interest status: Apache2 : - Apache2::Request : - CGI : - ExtUtils::MakeMaker: - LWP : - mod_perl : - mod_perl2 : - 3. This is the core dump trace: (if you get a core dump): Stack trace captured with WinDBG debugger mod_perl.so built with VC6 from 9/14/2007 SVN trunk 01c4fd04 7c596a7c ntdll!NtTerminateProcess+0xb 01c4fdd0 78007cd8 KERNEL32!ExitProcess+0x72 01c4fddc 78007c60 MSVCRT!exit+0xc0 01c4fdec 28087b6b MSVCRT!exit+0xd 01c4fe40 28083ddf perl58!Perl_my_strlcpy+0x220b 01c4fe58 10007349 perl58!Perl_croak+0x19 01c4fe88 10001ba2 mod_perl!modperl_io_perlio_override_stdin+0xb5 [modperl_io.c @ 128] 01c4fec8 6ff025e8 mod_perl!modperl_response_handler_cgi+0xdb [mod_perl.c @ 1095] 01c4fee0 6ff02a6f libhttpd!ap_run_handler+0x4e [C:\work\httpd-2.2.6\server\config.c @ 158] 01c4ff10 6ff12f02 libhttpd!ap_invoke_handler+0x120 [C:\work\httpd-2.2.6\server\config.c @ 372] 01c4ff20 6ff0dc8d libhttpd!ap_process_request+0x50 [C:\work\httpd-2.2.6\modules\http\http_request.c @ 258] 01c4ff34 6ff05eae libhttpd!ap_process_http_connection+0x67 [C:\work\httpd-2.2.6\modules\http\http_core.c @ 184] 01c4ff4c 6ff06237 libhttpd!ap_run_process_connection+0x4e [C:\work\httpd-2.2.6\server\connection.c @ 43] 01c4ff5c 6ff27400 libhttpd!ap_process_connection+0x4e [C:\work\httpd-2.2.6\server\connection.c @ 180] 01c4ff80 1020bf53 libhttpd!worker_main+0xec [C:\work\httpd-2.2.6\server\mpm\winnt\child.c @ 777] 01c4ffb4 7c57b3bc MSVCRTD!_beginthreadex+0x133 01c4ffec 00000000 KERNEL32!BaseThreadStart+0x52 This report was generated by t\REPORT on Fri Sep 14 13:52:24 2007 GMT. -------------8<---------- End Bug Report --------------8<---------- Note: Complete the rest of the details and post this bug report to modperl <at> perl.apache.org. To subscribe to the list send an empty email to [EMAIL PROTECTED]