Also, I just tried a long run (with the above change toI've rebuilt with Randy's revised IPC::Run3 patch for TestSmoke.pm (using undef instead of \undef), plus his patch to TestServer.pm, plus Stas' and my tweaks to modperl_io.c (changing ">&STDIN", 8 to "<&STDIN", 7). I think that's the current state of affairs. (And I didn't apply Randy's change to modperl_io.c that changed "<:Apache", 8 to "<:Apache", 7 ;-)
modperl_io.c), and now I do get a (seemingly) random
failure, but the error message is
Failed to dup STDOUT: Permission denied
and not STDIN. Not sure if this is progress ...
It looks like the revision to the IPC::Run3 patch may have improved things slightly (?) because I now get the same error reported above by Randy every time:
Failed to dup STDOUT: Permission denied.
and no longer see any errors about STDIN.
Again the error occurs on a random test and crashes the Apache server.
Hunting around for possible causes I thought that these two lines in modperl_io.c's modperl_io_perlio_override_stdout():
status = Perl_do_open(aTHX_ handle_save, ">&STDOUT", 8, FALSE, O_RDONLY, status = Perl_do_open9(aTHX_ handle, ">:Apache", 8, FALSE, O_RDONLY,
should perhaps be:
status = Perl_do_open(aTHX_ handle_save, ">&STDOUT", 8, FALSE, O_WRONLY, status = Perl_do_open9(aTHX_ handle, ">:Apache", 8, FALSE, O_WRONLY,
but sadly that didn't fix it either.
I've turned on IPC::Run3 debug (I set it to 9, which I'm sure is overkill, to be sure) to see if that helps any. Here's the console output from the last-but-one test (which ran OK):
=====
run3(): running 'C:\perl\bin\perl.exe C:/Temp/mod_perl-1.99_10/t/TEST -run modpe
rl\current_callback.t'
run3(): capturing child stdout
run3(): $? is 0
run3(): reading child stdout to SCALAR
run3(): read 127 bytes from child stdout: 'modperl\current_callback....ok
All tests successful.
Files=1, Tests=1, 1 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
'
modperl\current_callback....ok
All tests successful.
Files=1, Tests=1, 1 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
=====
and here's the output from the last test (which fell over):
=====
run3(): running 'C:\perl\bin\perl.exe C:/Temp/mod_perl-1.99_10/t/TEST -run modul
es\cgi.t'
run3(): capturing child stdout
run3(): $? is 256
run3(): reading child stdout to SCALAR
run3(): read 529 bytes from child stdout: 'modules\cgi....# Failed test 1 in mod
ules\cgi.t at line 29
# Failed test 2 in modules\cgi.t at line 35
# Failed test 3 in modules\cgi.t at line 41
# Failed test 4 in modules\cgi.t at line 50
# Failed test 5 in modules\cgi.t at line 58
FAILED tests 1-5
Failed 5/5 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
modules\cgi.t 5 5 100.00% 1-5
!!! error running tests (please examine t\logs\error_log)
'
modules\cgi....# Failed test 1 in modules\cgi.t at line 29
# Failed test 2 in modules\cgi.t at line 35
# Failed test 3 in modules\cgi.t at line 41
# Failed test 4 in modules\cgi.t at line 50
# Failed test 5 in modules\cgi.t at line 58
FAILED tests 1-5
Failed 5/5 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
modules\cgi.t 5 5 100.00% 1-5
!!! error running tests (please examine t\logs\error_log)
=====
I'll try to find something that reliably reproduces the problem, rather than scratching my head over these random failures...
- Steve
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]