perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: Test failure on Win32: t/error/runtime.t
Date Fri, 08 Apr 2005 17:07:49 GMT
Steve Hay wrote:
> Stas Bekman wrote:
> 
> 
>>Steve Hay wrote:
>> 
>>
>>
>>>Using bleadperl (@24099), svn mp2 (rev 159469), Apache 2.0.53 on WinXP I 
>>>have t/error/runtime.t failing tests 7, 9, 11.
>>>
>>>Attached is console output and the relevant bits from error_log.
>>>   
>>>
>>
>>Could it be related to this change:
>>http://svn.apache.org/viewcvs.cgi/perl/modperl/trunk/t/response/TestError/runtime.pm?rev=156118&r1=70923&r2=156118&diff_format=h
>>
>>i.e. the one that did: s/APR::TIMEUP/APR::EAGAIN/, try reversing it?
>>
> 
> Tests 7, 9, 11 are eval_block_mp_error, eval_string_mp_error, 
> overload_test respectively.
> 
> Reverting the change cited above changes EAGAIN back to TIMEUP in 
> eval_block_mp_error and eval_string_mp_error and removes overload_test.  
> This removes test 11, and hence removes that failure ;), but tests 7 and 
> 9 still fail.

OK, so it's not s/APR::TIMEUP/APR::EAGAIN/. The only thing that has certainly changed is that
the overload of APR::Error now works correctly, which wasn't the case before.

Why your error log doesn't have these logs? Makes it hard to tell real errors from expected
ones. 
*** The following error entry is expected and harmless ***

You can see, it's done by t_server_log_error_is_expected(); imported from Apache::TestUtil.
Any chance you could check where it disappears?

So #7 eval_block_mp_error gives us:

eval block has failed: APR::Socket::recv: (730035) A non-blocking socket operation could not
be completed immediately.   at C:\\apache2\\source\\mod_perl-2.0\\t\\response/TestError/runtime.pm
line 156 at C:\\apache2\\source\\mod_perl-2.0\\t\\response/TestError/runtime.pm line 114.\n

1) I suppose 730035 is not APR::Const::EAGAIN, so it doesn't retry as the test goes. Or does
it? Try printing:

  warn "APR::Const::EAGAIN value: " . APR::Const::EAGAIN+0;

to see what's the error id it matches. 

2) If it is (730035) then try to raise the number of tries and see if it makes any difference.

#9 eval_string_mp_error gives us:

 eval string has failed: APR::Socket::recv: (730035) A non-blocking socket operation could
not be completed immediately.   at (eval 124) line 1 at C:\\apache2\\source\\mod_perl-2.0\\t\\response/TestError/runtime.pm
line 125.\n

This is exactly the same as #7.

#11 overload_test gives us:

 '==' overload is broken at C:\\apache2\\source\\mod_perl-2.0\\t\\response/TestError/runtime.pm
line 46.\n


1) it fails here:
    die "'==' overload is broken" unless $@ == APR::Const::EAGAIN;

so, it looks again the same issue. You are probably getting a different $@ under windows.

I guess we could find out what is that constant, or try to use a different operation that
will certainly fail and it'll give the same error constant on all platforms. Suggestions are
welcome.


-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org 
mailto:stas@stason.org http://use.perl.org http://apacheweek.com  
http://modperlbook.org http://apache.org   http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message