perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Hay <steve....@uk.radan.com>
Subject Re: t/SMOKE on win32
Date Fri, 03 Oct 2003 08:39:15 GMT
Randy Kobes wrote:

>Also, I just tried a long run (with the above change to
>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 ...
>  
>
I'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 ;-)

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: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message