Skip Menu |

This queue is for tickets about the Net-Daemon CPAN distribution.

Report information
The Basics
Id: 28652
Status: resolved
Priority: 0/
Queue: Net-Daemon

People
Owner: Nobody in particular
Requestors: MNOONING [...] cpan.org
Cc: SAPER [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Net::Daemon tests hang on IRIX
This was originally reported by Stuart Shelton. I don't know if there's an offical bug-tracker, or whether you already know of this issue: When trying to install Net::Daemon via the CPAN shell, the test suite hangs on IRIX, which requires killing both the build and CPAN with it. The output (from "make Net::Daemon", "look Net::Daemon") is: # gmake test PERL_DL_NONLAZY=1 /usr/bsd/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/base..........ok t/config........no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 Server process didn't create a file 'ndtest.prt'. at /usr/bsd/var/tmp/cpan/build/Net-Daemon-XXAnno/blib/lib/Net/Daemon/Test.pm line 317. t/config........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 1-5 Failed 5/5 tests, 0.00% okay t/fork..........no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 Server process didn't create a file 'ndtest.prt'. at /usr/bsd/var/tmp/cpan/build/Net-Daemon-XXAnno/blib/lib/Net/Daemon/Test.pm line 317. FAILED before any test output arrived t/forkm.........Unexpected return from Bind(). Server died: no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 ... and, indeed, on IRIX /dev/conslog does exist, but is a character-special file. $ ls -l /dev/*log* crw-rw-rw- 1 root sys 10, 80 2007-08-01 11:28 /dev/conslog crw-r--r-- 1 root sys 41, 0 2007-06-28 10:41 /dev/klog crw-rw-rw- 1 root sys 10, 80 2007-08-01 05:25 /dev/log The man page for syslogd(1M) states: syslogd reads and logs messages into a set of files described by the configuration file /etc/syslog.conf. Each message is one line. A message can contain a priority code, marked by a number in angle braces at the beginning of the line. Priorities are defined in <sys/syslog.h>. syslogd reads from the stream device /dev/log, from an Internet domain socket specified in /etc/services, and from the special device /dev/klog (to read kernel messages). Can I provide you with any further information in order to fix this issue on IRIX? P.S. In the Net::Daemon documentation, the only contact listed is Jochen, and I can't seem to find any email lists (via Google) where Malcolm's email address hasn't been censored. Hopefully, this message will find the right person... Cheers, Stuart ------------------------------Response by M. Nooning follows Hello Stuart, It may be that there is a problem that is unrelated to Net::Daemon. If you go to http://search.cpan.org/~saper/Sys-Syslog-0.18/Syslog.pm you will see that the error message "no connection to syslog available" comes from syslog() failing to connect to the specified socket Make sure syslogd is running when you run the tests, too. Make sure you have the latest Sys::Syslog (0.18). On the other hand, I would like to try something in Temp.pm. If all else fails, please go to blib/lib/Net/Daemon/Test.pm. The reason is, from your error messages, the file "ndtest.prt" is not being created in the parent or the child is not waiting properly before it looks for it. ------------Begin try this Go to line 316 and change for (my $secs = 20; $secs && ! -s 'ndtest.prt'; $secs -= sleep 1) { } to for (my $secs = 20; $secs && ! -s 'ndtest.prt'; $secs -= 1) { select(undef, undef, undef, 1); } ------------End try this You are *not* getting the error message "Error while creating 'ndtest.prt' so I suspect maybe there is something wrong with sleep. The "select" will wait 1 second and not depend upon the same signal that "sleep" does. Yes, I know this is long shot. I doubt that it is a permissions problem because you could not have unzipped and untarred your Net::Daemon download, etcetera, without having the permissions to create a file. Please let me know how you have fared. ---------------------Stuart Shelton responded as below Hi Sebastien & Malcolm, Sebastien - Hi, I'm trying to track down a problem which not only prevents Net::Daemon from passing its test-suite on IRIX, but which causes the perl build process to hang indefinitely. You'll notice the output from Sys::Syslog during the Net::Daemon tests. The problem seems to be that Sys::Syslog is expecting a socket at /dev/conslog (Solaris?) whereas on IRIX this is a character device - and this seems to be confusing things. I've double-checked, and I definitely have Sys::Syslog 0.18 installed. I've made the change to blib/lib/Net/Daemon/Test.pm at line 314 (which I assume was the one you meant with Temp.pm at line 316 ;) and the same output is produced: cpan[5]> install Sys::Syslog Sys::Syslog is up to date (0.18). cpan[6]> test Net::Daemon Running test for module 'Net::Daemon' Running make for M/MN/MNOONING/Net-Daemon/Net-Daemon-0.43.tar.gz Has already been unwrapped into directory /usr/bsd/var/tmp/cpan/build/Net-Daemon-kclMUV Has already been made Running make test PERL_DL_NONLAZY=1 /usr/bsd/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/base..........ok t/config........no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 Server process didn't create a file 'ndtest.prt'. at /usr/bsd/var/tmp/cpan/build/Net-Daemon-kclMUV/blib/lib/Net/Daemon/Test.pm line 318. t/config........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 1-5 Failed 5/5 tests, 0.00% okay t/fork..........no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 Server process didn't create a file 'ndtest.prt'. at /usr/bsd/var/tmp/cpan/build/Net-Daemon-kclMUV/blib/lib/Net/Daemon/Test.pm line 318. FAILED before any test output arrived t/forkm.........Unexpected return from Bind(). Server died: no connection to syslog available - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm line 114 [Test process hangs at this point - sent a HUP] gmake: *** [test_dynamic] Hangup MNOONING/Net-Daemon/Net-Daemon-0.43.tar.gz /usr/bsd/bin/gmake test -- NOT OK Failed during this command: MNOONING/Net-Daemon/Net-Daemon-0.43.tar.gz : make_test NO cpan[7]> Incidentally, if I (force-)test Sys::Syslog, then I get: cpan[8]> test Sys::Syslog Running test for module 'Sys::Syslog' Running make for S/SA/SAPER/Sys-Syslog-0.18.tar.gz Checksum was ok Sys-Syslog-0.18/ Sys-Syslog-0.18/Syslog.pm Sys-Syslog-0.18/Changes Sys-Syslog-0.18/t/ Sys-Syslog-0.18/t/distchk.t Sys-Syslog-0.18/t/constants.t Sys-Syslog-0.18/t/portfs.t Sys-Syslog-0.18/t/podspell.t Sys-Syslog-0.18/t/00-load.t Sys-Syslog-0.18/t/pod.t Sys-Syslog-0.18/t/syslog.t Sys-Syslog-0.18/t/podcover.t Sys-Syslog-0.18/MANIFEST Sys-Syslog-0.18/fallback/ Sys-Syslog-0.18/fallback/const-c.inc Sys-Syslog-0.18/fallback/const-xs.inc Sys-Syslog-0.18/ppport.h Sys-Syslog-0.18/Syslog.xs Sys-Syslog-0.18/README Sys-Syslog-0.18/Makefile.PL Sys-Syslog-0.18/META.yml CPAN.pm: Going to build S/SA/SAPER/Sys-Syslog-0.18.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Sys::Syslog /usr/bsd/bin/perl /usr/bsd/lib/perl5/5.8.0/ExtUtils/xsubpp -noprototypes -typemap /usr/bsd/lib/perl5/5.8.0/ExtUtils/typemap Syslog.xs > Syslog.xsc && mv Syslog.xsc Syslog.c Running Mkbootstrap for Sys::Syslog () cp Syslog.pm blib/lib/Sys/Syslog.pm chmod 644 Syslog.bs cp Syslog.bs blib/arch/auto/Sys/Syslog/Syslog.bs chmod 644 blib/arch/auto/Sys/Syslog/Syslog.bs cc -c99 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip30:processor=r14000 -TENV:zeroinit_in_bss=ON -c -woff 1174,1183,1184,1185,1188,1196,1204,1548,1552,3970,3968 -D_BSD_TYPES -D_BSD_TIME -DLANGUAGE_C -I/usr/bsd/include -c99 -O2 -n32 -mips4 -r14000 -apo -float_const -use_readonly_const -TARG:isa=mips4:platform=ip30:processor=r14000 -TENV:zeroinit_in_bss=ON -OPT:fast_io=ON:Olimit=10240:reorg_common=ON:swp=ON -LNO:auto_dist=ON:fusion_peeling_limit=8:gather_scatter=2 -DVERSION=\"0.18\" -DXS_VERSION=\"0.18\" "-I/usr/bsd/lib/perl5/5.8.0/mipseb-irix6.5/CORE" Syslog.c rm -f blib/arch/auto/Sys/Syslog/Syslog.so cc -c99 -n32 -mips4 -r14000 -float_const -use_readonly_const -TARG:isa=mips4:platform=ip30:processor=r14000 -TENV:zeroinit_in_bss=ON -Wl,-v,-s,-x,-n32,-mips4,-rdata_shared,-allow_jump_at_eop,-rpath,/usr/bsd/lib -shared -L/usr/bsd/lib Syslog.o -o blib/arch/auto/Sys/Syslog/Syslog.so \ \ ld32: Mapped === Syslog.o ==== at address 0x4000000 ld32: 1: loading Syslog.o. ld32: Trying to open /usr/bsd/lib/libc.so... ld32: Trying to open /usr/bsd/lib/libc.a... ld32: Trying to open /usr/lib32/mips4/r10000/libc.so... ld32: Trying to open /usr/lib32/mips4/r10000/libc.a... ld32: Trying to open /usr/lib32/mips4/libc.so... ld32: Mapped === /usr/lib32/mips4/libc.so ==== at address 0x4008000 ld32: Processing /usr/lib32/mips4/libc.so. ld32: Laying out sections and assigning virtual addresses. ld32: Fixing up symbol values. ld32: Sorting symbol table. ld32: Pass2: creating output file. ld32: .MIPS.options. ld32: .reginfo. ld32: .dynamic. ld32: .liblist. ld32: .dynstr. ld32: .hash. ld32: .dynsym. ld32: .MIPS.symlib. ld32: .rel.dyn. ld32: .msym. ld32: .MIPS.stubs. ld32: .text. ld32: .rodata. ld32: .got. ld32: .sbss. ld32: .srdata. ld32: .debug_abbrev. ld32: .debug_info. ld32: .debug_frame. ld32: .debug_aranges. ld32: .comment. ld32: .MIPS.interfaces. ld32: .MIPS.events.text. ld32: .MIPS.content.rodata. ld32: .shstrtab. ld32: Sorting dynamic relocation records. chmod 755 blib/arch/auto/Sys/Syslog/Syslog.so SAPER/Sys-Syslog-0.18.tar.gz /usr/bsd/bin/gmake -j3 -j3 -- OK Running make test PERL_DL_NONLAZY=1 /usr/bsd/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-load......ok 1/1# Testing Sys::Syslog 0.18, Perl 5.008008, /usr/bsd/bin/perl t/00-load......ok t/constants....ok 7/88 skipped: various reasons t/distchk......ok t/pod..........ok t/podcover.....ok t/podspell.....skipped all skipped: Pod spelling: for developer interest only :) t/portfs.......ok t/syslog.......ok 34/159 skipped: various reasons All tests successful, 1 test and 41 subtests skipped. Files=8, Tests=258, 3 wallclock secs ( 2.53 cusr + 0.56 csys = 3.09 CPU) SAPER/Sys-Syslog-0.18.tar.gz /usr/bsd/bin/gmake test -- OK ... which seems to suggest that it is okay (or that the Syslog test suite is not as comprehensive as it might be...) Cheers guys, Stuart
CC: Malcolm Nooning <m.nooning [...] comcast.net>, Stuart Shelton <stuart [...] openobjects.com>
Subject: [rt.cpan.org #28652] Re: Net::Daemon tests hang on IRIX
Date: Sat, 4 Aug 2007 02:58:30 +0200
To: bug-Net-Daemon [...] rt.cpan.org
From: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
Hello Malcolm and Stuart, Stuart Shelton wrote: Show quoted text
> Hi Sebastien & Malcolm, > > Sebastien - Hi, I'm trying to track down a problem which not only > prevents Net::Daemon from passing its test-suite on IRIX, but which > causes the perl build process to hang indefinitely. You'll notice > the output from Sys::Syslog during the Net::Daemon tests. The > problem seems to be that Sys::Syslog is expecting a socket at /dev/ > conslog (Solaris?) whereas on IRIX this is a character device - and > this seems to be confusing things. > > I've double-checked, and I definitely have Sys::Syslog 0.18 installed. > > cpan[6]> test Net::Daemon > [...] > Server died: no connection to syslog available > - /dev/conslog is not a socket at blib/lib/Net/Daemon/ > Log.pm line 114 > > [Test process hangs at this point - sent a HUP]
Show quoted text
> Incidentally, if I (force-)test Sys::Syslog, then I get: > > [Sys::Syslog: All tests successful, 1 test and 41 subtests skipped.] > > ... which seems to suggest that it is okay (or that the Syslog test > suite is not as comprehensive as it might be...)
Of course, I can't offer a warranty, but I think that the current test suite checks the module in most if not all code paths (hard to prove because code paths are OS dependent). The real problem in your case is that Net::Daemon uses Sys::Syslog is the old way, which has always been very wrong (but it was documented this way so Malcolm can't be blamed for this). The current correct way is to use the "native" mechanism which should have been the one used since years ago. It's the default on all operating systems except Win32 where Sys::Syslog will use Win32::EventLog (in the soon- to-be-released version). See the note in L<Sys::Syslog/setlogck> for more details. » http://search.cpan.org/dist/Sys-Syslog/Syslog.pm#setlogsock Malcolm, attached to this mail is a patch which removes the operating system dance from Net::Daemon::Log.

Message body is not shown because sender requested not to inline it.

The second patch does the same but also simplifies the loading of the module, as I see no reason for doing this. It also removes some "&" when used to call functions because, unless you really known what you're doing, it doesn't do exactly what you think (and in such case, its usage it just obsolete).

Message body is not shown because sender requested not to inline it.

Regards, -- Sébastien Aperghis-Tramoni Close the world, txEn eht nepO.
CC: Malcolm Nooning <m.nooning [...] comcast.net>, Stuart Shelton <stuart [...] openobjects.com>
Subject: Re: [rt.cpan.org #28652] Re: Net::Daemon tests hang on IRIX
Date: Fri, 10 Aug 2007 08:44:09 +0200
To: bug-Net-Daemon [...] rt.cpan.org
From: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
Hello Malcolm and Stuart, I haven't heard back from you. Did one of you tried to apply the patch I sent in my previous mail? Sébastien Aperghis-Tramoni wrote: Show quoted text
> The real problem in your case is that Net::Daemon uses Sys::Syslog > is the old way, which has always been very wrong (but it was > documented this way so Malcolm can't be blamed for this). The > current correct way is to use the "native" mechanism which should > have been the one used since years ago. It's the default on all > operating systems except Win32 where Sys::Syslog will use > Win32::EventLog (in the soon-to-be-released version). See the note > in L<Sys::Syslog/setlogck> for more details. > » http://search.cpan.org/dist/Sys-Syslog/Syslog.pm#setlogsock > > Malcolm, attached to this mail is a patch which removes the > operating system dance from Net::Daemon::Log. > <Net-Daemon-0.43-sys-syslog-01.diff> > > The second patch does the same but also simplifies the loading of > the module, as I see no reason for doing this. It also removes some > "&" when used to call functions because, unless you really known > what you're doing, it doesn't do exactly what you think (and in > such case, its usage it just obsolete). > <Net-Daemon-0.43-sys-syslog-02.diff>
Regards, -- Sébastien Aperghis-Tramoni Close the world, txEn eht nepO.
From: Sébastien Aperghis-Tramoni Hello Malcolm and Stuart, Stuart Shelton wrote: Show quoted text
> Hi Sebastien & Malcolm, > > Sebastien - Hi, I'm trying to track down a problem which not only
prevents Net::Daemon from passing its test-suite on IRIX, but which causes the perl build process to hang indefinitely. You'll notice the output from Sys::Syslog during the Net::Daemon tests. The problem seems to be that Sys::Syslog is expecting a socket at /dev/conslog (Solaris?) whereas on IRIX this is a character device - and this seems to be confusing things. Show quoted text
> > I've double-checked, and I definitely have Sys::Syslog 0.18 installed. > > cpan[6]> test Net::Daemon > [...] > Server died: no connection to syslog available > - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm
line 114 Show quoted text
> > [Test process hangs at this point - sent a HUP]
Show quoted text
> Incidentally, if I (force-)test Sys::Syslog, then I get: > > [Sys::Syslog: All tests successful, 1 test and 41 subtests skipped.] > > ... which seems to suggest that it is okay (or that the Syslog test
suite is not as comprehensive as it might be...) Of course, I can't offer a warranty, but I think that the current test suite checks the module in most if not all code paths (hard to prove because code paths are OS dependent). The real problem in your case is that Net::Daemon uses Sys::Syslog is the old way, which has always been very wrong (but it was documented this way so Malcolm can't be blamed for this). The current correct way is to use the "native" mechanism which should have been the one used since years ago. It's the default on all operating systems except Win32 where Sys::Syslog will use Win32::EventLog (in the soon-to-be-released version). See the note in L<Sys::Syslog/setlogck> for more details. » http://search.cpan.org/dist/Sys-Syslog/Syslog.pm#setlogsock Malcolm, attached to this mail is a patch which removes the operating system dance from Net::Daemon::Log. The second patch does the same but also simplifies the loading of the module, as I see no reason for doing this. It also removes some "&" when used to call functions because, unless you really known what you're doing, it doesn't do exactly what you think (and in such case, its usage it just obsolete). Regards, -- Sébastien Aperghis-Tramoni
From: Sébastien Aperghis-Tramoni Hello Malcolm and Stuart, Stuart Shelton wrote: Show quoted text
> Hi Sebastien & Malcolm, > > Sebastien - Hi, I'm trying to track down a problem which not only
prevents Net::Daemon from passing its test-suite on IRIX, but which causes the perl build process to hang indefinitely. You'll notice the output from Sys::Syslog during the Net::Daemon tests. The problem seems to be that Sys::Syslog is expecting a socket at /dev/conslog (Solaris?) whereas on IRIX this is a character device - and this seems to be confusing things. Show quoted text
> > I've double-checked, and I definitely have Sys::Syslog 0.18 installed. > > cpan[6]> test Net::Daemon > [...] > Server died: no connection to syslog available > - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm
line 114 Show quoted text
> > [Test process hangs at this point - sent a HUP]
Show quoted text
> Incidentally, if I (force-)test Sys::Syslog, then I get: > > [Sys::Syslog: All tests successful, 1 test and 41 subtests skipped.] > > ... which seems to suggest that it is okay (or that the Syslog test
suite is not as comprehensive as it might be...) Of course, I can't offer a warranty, but I think that the current test suite checks the module in most if not all code paths (hard to prove because code paths are OS dependent). The real problem in your case is that Net::Daemon uses Sys::Syslog is the old way, which has always been very wrong (but it was documented this way so Malcolm can't be blamed for this). The current correct way is to use the "native" mechanism which should have been the one used since years ago. It's the default on all operating systems except Win32 where Sys::Syslog will use Win32::EventLog (in the soon-to-be-released version). See the note in L<Sys::Syslog/setlogck> for more details. » http://search.cpan.org/dist/Sys-Syslog/Syslog.pm#setlogsock Malcolm, attached to this mail is a patch which removes the operating system dance from Net::Daemon::Log. The second patch does the same but also simplifies the loading of the module, as I see no reason for doing this. It also removes some "&" when used to call functions because, unless you really known what you're doing, it doesn't do exactly what you think (and in such case, its usage it just obsolete). Regards, -- Sébastien Aperghis-Tramoni -------------------------------paste Part 1p3 <div class="moz-text-flowed" style="font-family: -moz-fixed"> The second patch does the same but also simplifies the loading of the module, as I see no reason for doing this. It also removes some "&" when used to call functions because, unless you really known what you're doing, it doesn't do exactly what you think (and in such case, its usage it just obsolete).</div> --------------------------------paste Part 1p5 <div class="moz-text-flowed" style="font-family: -moz-fixed"> Regards, -- Sébastien Aperghis-Tramoni Close the world, txEn eht nepO. </div> -------------------------------paste first diff diff -ru Net-Daemon-0.43-orig/lib/Net/Daemon/Log.pm Net-Daemon-0.43/lib/Net/Daemon/Log.pm --- Net-Daemon-0.43-orig/lib/Net/Daemon/Log.pm 2007-05-23 15:56:02.000000000 +0200 +++ Net-Daemon-0.43/lib/Net/Daemon/Log.pm 2007-08-04 02:27:37.000000000 +0200 @@ -57,11 +57,6 @@ if ($@) { die "Cannot open Syslog: $@"; } - if ($^O ne 'solaris' && $^O ne 'freebsd' && - defined(&Sys::Syslog::setlogsock) && - eval { &Sys::Syslog::_PATH_LOG() }) { - &Sys::Syslog::setlogsock('unix'); - } &Sys::Syslog::openlog($self->{'logname'} || ref($self), 'pid', $self->{'facility'} || 'daemon'); } -----------------------------paste second diff diff -ru Net-Daemon-0.43-orig/lib/Net/Daemon/Log.pm Net-Daemon-0.43/lib/Net/Daemon/Log.pm --- Net-Daemon-0.43-orig/lib/Net/Daemon/Log.pm 2007-05-23 15:56:02.000000000 +0200 +++ Net-Daemon-0.43/lib/Net/Daemon/Log.pm 2007-08-04 02:38:43.000000000 +0200 @@ -53,16 +53,8 @@ or die "Cannot open EventLog:" . &Win32::GetLastError(); $self->{'$eventId'} = 0; } else { - eval { require Sys::Syslog }; - if ($@) { - die "Cannot open Syslog: $@"; - } - if ($^O ne 'solaris' && $^O ne 'freebsd' && - defined(&Sys::Syslog::setlogsock) && - eval { &Sys::Syslog::_PATH_LOG() }) { - &Sys::Syslog::setlogsock('unix'); - } - &Sys::Syslog::openlog($self->{'logname'} || ref($self), 'pid', + require Sys::Syslog; + Sys::Syslog::openlog($self->{'logname'} || ref($self), 'pid', $self->{'facility'} || 'daemon'); } $self->{'logfile'} = 0; @@ -111,7 +103,7 @@ 'Data' => $tid }); } else { - &Sys::Syslog::syslog($level, "$tid$format", @args); + Sys::Syslog::syslog($level, "$tid$format", @args); } }
First of all, my apologies for the duplication of the last messages. What a pain. I have decided to keep use Sebastien's patch, modified to keep the eval and the check for $@ and the die statement. If there is a problem with require Sys::Syslog the "Cannot open Syslog: $@" line at least lets the user know what happened. The forkm test hung for me on a linux machine. It was a quickie type of test on someone else's machine so I was not able to triage it. When I get a chance I will test it further. Thanks
CC: bug-Net-Daemon [...] rt.cpan.org, Stuart Shelton <stuart [...] openobjects.com>
Subject: Re: [rt.cpan.org #28652] Re: Net::Daemon tests hang on IRIX
Date: Fri, 10 Aug 2007 21:40:39 -0400
To: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
From: Malcolm Nooning <m.nooning [...] comcast.net>
Sébastien Aperghis-Tramoni wrote: Show quoted text
> Hello Malcolm and Stuart, > > > Stuart Shelton wrote: >
>> Hi Sebastien & Malcolm, >> >> Sebastien - Hi, I'm trying to track down a problem which not only >> prevents Net::Daemon from passing its test-suite on IRIX, but which >> causes the perl build process to hang indefinitely. You'll notice >> the output from Sys::Syslog during the Net::Daemon tests. The >> problem seems to be that Sys::Syslog is expecting a socket at >> /dev/conslog (Solaris?) whereas on IRIX this is a character device - >> and this seems to be confusing things. >> >> I've double-checked, and I definitely have Sys::Syslog 0.18 installed. >> >> cpan[6]> test Net::Daemon >> [...] >> Server died: no connection to syslog available >> - /dev/conslog is not a socket at blib/lib/Net/Daemon/Log.pm >> line 114 >> >> [Test process hangs at this point - sent a HUP]
>
>> Incidentally, if I (force-)test Sys::Syslog, then I get: >> >> [Sys::Syslog: All tests successful, 1 test and 41 subtests skipped.] >> >> ... which seems to suggest that it is okay (or that the Syslog test >> suite is not as comprehensive as it might be...)
> > Of course, I can't offer a warranty, but I think that the current test > suite checks the module in most if not all code paths (hard to prove > because code paths are OS dependent). > > The real problem in your case is that Net::Daemon uses Sys::Syslog is > the old way, which has always been very wrong (but it was documented > this way so Malcolm can't be blamed for this). The current correct way > is to use the "native" mechanism which should have been the one used > since years ago. It's the default on all operating systems except > Win32 where Sys::Syslog will use Win32::EventLog (in the > soon-to-be-released version). See the note in L<Sys::Syslog/setlogck> > for more details. > » http://search.cpan.org/dist/Sys-Syslog/Syslog.pm#setlogsock > > Malcolm, attached to this mail is a patch which removes the operating > system dance from Net::Daemon::Log. > > The second patch does the same but also simplifies the loading of the > module, as I see no reason for doing this. It also removes some "&" > when used to call functions because, unless you really known what > you're doing, it doesn't do exactly what you think (and in such case, > its usage it just obsolete). > > > Regards, >
Thanks Sebastien, Thanks for the analysis and the patches. I have posted your email to http://rt.cpan.org/Ticket/Display.html?id=28652, and posted my reply there, too. Thanks
CC: Stuart Shelton <stuart [...] openobjects.com>, Malcolm Nooning <m.nooning [...] comcast.net>
Subject: Re: [rt.cpan.org #28652] Re: Net::Daemon tests hang on IRIX
Date: Sat, 11 Aug 2007 15:37:26 +0200
To: bug-Net-Daemon [...] rt.cpan.org
From: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
Malcolm Nooning wrote: Show quoted text
> Thanks for the analysis and the patches.
You're welcome. Show quoted text
> I have posted your email to http://rt.cpan.org/Ticket/Display.html? > id=28652, and posted my reply there, too.
There's no need to copy mails in the ticket: it is automatically done as long as we send mails to bug-Net-Daemon@rt.cpan.org with the ticket number in the subject. That's why RT is nice to use: in a typical ticket, you can discuss and exchange patches with people through the mail gateway, and only use the web interface when it's done, to close the ticket. -- Sébastien Aperghis-Tramoni Close the world, txEn eht nepO.
CC: bug-Net-Daemon [...] rt.cpan.org, Malcolm Nooning <m.nooning [...] comcast.net>
Subject: Re: [rt.cpan.org #28652] Re: Net::Daemon tests hang on IRIX
Date: Fri, 31 Aug 2007 18:56:12 +0100
To: Sébastien Aperghis-Tramoni <saper [...] cpan.org>
From: Stuart Shelton <stuart [...] openobjects.com>
Sorry it took so long - I can confirm that with Patch #2, Net::Daemon does indeed build, test, and install cleanly on IRIX. I've not tried actually using it - but this is obvisouly a great improvement :) Cheers, Stuart
Ticket migrated to github as https://github.com/toddr/Net-Daemon/issues/13