List Info

Thread: syslog.t failures on Linux 2.2 (Redhat 7)




syslog.t failures on Linux 2.2 (Redhat 7)
user name
2007-11-05 17:35:59
I'm not sure if we should care, but I noticed that the
current syslog.t
fails with Sys::Syslog 0.21 (the corresponding bleadperl
version) on an
old Redhat 7 box. The failure no longer happens on a Redhat
9 box with a
2.4 kernel.

The somewhat surprising issue is that the new tests from
bleadperl
*do* pass on the Redhat 7 box when called under Perl 5.8.8
with
Sys::Syslog 0.18:

jandredhat-70:t> ~/ap822.2/bin/perl -MSys::Syslog -e
'print "$]n$Sys::Syslog::VERSIONn"'
5.008008
0.18
jandredhat-70:t> ~/ap822.2/bin/perl -T -MSys::Syslog
syslog.t|grep "not ok"
not ok 8 - setlogsock() should return true: '0' # TODO minor
bug
jandredhat-70:t> ~/ap1000/bin/perl -MSys::Syslog -e
'print "$]n$Sys::Syslog::VERSIONn"'
5.010000
0.21
jandredhat-70:t> ~/ap1000/bin/perl -T -MSys::Syslog
syslog.t|grep "not ok"
not ok 8 - setlogsock() should return true: '0' # TODO minor
bug
not ok 90 - [pipe] syslog() should return true: '0'
#   Failed test '[pipe] syslog() should return true: '0''
#   at syslog.t line 164.
not ok 92 - [pipe] syslog() should return true: '0'
#   Failed test '[pipe] syslog() should return true: '0''
#   at syslog.t line 171.
not ok 94 - [pipe] closelog() should return true: '0'
#   Failed test '[pipe] closelog() should return true: '0''
#   at syslog.t line 180.
# Looks like you failed 3 tests of 199.

Cheers,
-Jan


Re: syslog.t failures on Linux 2.2 (Redhat 7)
user name
2007-11-05 18:59:13
Jan Dubois wrote:

> I'm not sure if we should care, but I noticed that the
current  
> syslog.t
> fails with Sys::Syslog 0.21 (the corresponding
bleadperl version)  
> on an
> old Redhat 7 box. The failure no longer happens on a
Redhat 9 box  
> with a
> 2.4 kernel.

I think like most other people on this list I care enough to
dislike  
gratuitously breaking things. And P5P is quite the place to
encounter  
old and exotic platforms 

> The somewhat surprising issue is that the new tests
from bleadperl
> *do* pass on the Redhat 7 box when called under Perl
5.8.8 with
> Sys::Syslog 0.18:
>
> jandredhat-70:t> ~/ap1000/bin/perl -MSys::Syslog -e
'print "$]n 
> $Sys::Syslog::VERSIONn"'
> 5.010000
> 0.21
> jandredhat-70:t> ~/ap1000/bin/perl -T -MSys::Syslog
syslog.t|grep  
> "not ok"
> not ok 8 - setlogsock() should return true: '0' # TODO
minor bug
> not ok 90 - [pipe] syslog() should return true: '0'
> #   Failed test '[pipe] syslog() should return true:
'0''
> #   at syslog.t line 164.
> not ok 92 - [pipe] syslog() should return true: '0'
> #   Failed test '[pipe] syslog() should return true:
'0''
> #   at syslog.t line 171.
> not ok 94 - [pipe] closelog() should return true: '0'
> #   Failed test '[pipe] closelog() should return true:
'0''
> #   at syslog.t line 180.
> # Looks like you failed 3 tests of 199.

What's happening here is that the tests are trying the
"pipe"  
mechanism that was added for HP-UX. If is enabled when
/dev/log is a  
pipe instead of being a socket (most other Unix) or a
character  
device (z/OS). Could you give me the output of the following
commands:

   $ ls -lF /dev/log
   $ perl -le 'print join$",-w
shift&&"writable",-S
_&&"socket",-c  
_&&"char",-p _&&"pipe"' 
/dev/log

My guess is that the tests are hitting a bug in the Linux
syslog  
driver, where the device with this old kernel also appears
like a  
pipe even though it's supposed to appears like a socket.
(IIRC, Unix  
domain sockets are implemented with named pipe, or the
reverse, and  
the bug here is that the kernel isn't hiding enough the
underlying  
mechanism).


-- 
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.


RE: syslog.t failures on Linux 2.2 (Redhat 7)
user name
2007-11-05 19:14:03
On Mon, 05 Nov 2007, Sébastien Aperghis-Tramoni wrote:
> What's happening here is that the tests are trying the
"pipe"
> mechanism that was added for HP-UX. If is enabled when
/dev/log is a
> pipe instead of being a socket (most other Unix) or a
character
> device (z/OS). Could you give me the output of the
following commands:
> 
>    $ ls -lF /dev/log
>    $ perl -le 'print join$",-w
shift&&"writable",-S
_&&"socket",-c
> _&&"char",-p
_&&"pipe"'  /dev/log

Sure:

$ ls -lF /dev/log
srw-rw-rw-    1 root     root            0 Oct  2 14:24
/dev/log=
$ perl -le 'print join$",-w
shift&&"writable",-S
_&&"socket",-c
_&&"char",-p _&&"pipe"' 
/dev/log
writable socket

Cheers,
-Jan



Re: syslog.t failures on Linux 2.2 (Redhat 7)
user name
2007-11-05 19:44:46
Jan Dubois wrote:

> On Mon, 05 Nov 2007, Sébastien Aperghis-Tramoni wrote:
>> What's happening here is that the tests are trying
the "pipe"
>> mechanism that was added for HP-UX. If is enabled
when /dev/log is a
>> pipe instead of being a socket (most other Unix) or
a character
>> device (z/OS). Could you give me the output of the
following  
>> commands:
>>
>>    $ ls -lF /dev/log
>>    $ perl -le 'print join$",-w
shift&&"writable",-S
_&&"socket",-c
>> _&&"char",-p
_&&"pipe"'  /dev/log
>
> Sure:
>
> $ ls -lF /dev/log
> srw-rw-rw-    1 root     root            0 Oct  2 14:24
/dev/log=
> $ perl -le 'print join$",-w
shift&&"writable",-S
_&&"socket",-c  
> _&&"char",-p
_&&"pipe"'  /dev/log
> writable socket

Hmm... then I don't understand.
I'll take a deeper look later.

Thanks for reporting.


-- 
Sébastien Aperghis-Tramoni

Close the world, txEn eht nepO.



[1-4]

about | contact  Other archives ( Real Estate discussion Medical topics )