perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <>
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:
>>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
*** 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/
line 156 at C:\\apache2\\source\\mod_perl-2.0\\t\\response/TestError/ 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/
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/
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

Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker     mod_perl Guide --->

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message