perl 5.8.8 syslog tests failing on MacOS X (sometimes)

Sébastien Aperghis-Tramoni maddingue at free.fr
Sat Dec 16 02:38:34 GMT 2006


Mark Blackman wrote:

> Edmund von der Burg wrote:
>>
>> Anyone confirm / deny this?
>
> confirmed, but I suspect it's because your Mac is too fast (as is  
> mine).
>
> 1) syslogd on OS X isn't listening on a UDP port by default, so the  
> Sys::Syslog tests shouldn't be testing UDP.
>
> 2) Sys::Syslog fails to detect this state (and consequently skip  
> tests) because it's not waiting long enough (some of the time) to  
> hear the ICMP 'udp port 514 unreachable' message come back when it  
> tests the connection.


Edmund von der Burg wrote :

> I changed the code to this as suggested by Mark [...] and it now  
> works fine.


Thank you very much for the time you both spent on this issue.
I was suspecting something related to the fact that UDP is a  
disconnected protocol, but didn't thought about a timer problem.  
Running the same loop as Edmund did for more than 700 iterations, I  
only get 100% pass because my Mac is slow enough to get the ICMP  
response :-)

I've commited the change as is, as I can't test for better values.  
However this timeout is only exercised when using one of the network  
mechanisms (tcp, udp, unix, stream) while the default mechanism is  
the native one under Unix and will be the EventLog under Win32. Hence  
this part of the code shouldn't be executed that much. Provided  
people stop using setlogsock().


Kind Regards,

-- 
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.





More information about the london.pm mailing list