Skip Menu |

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

Report information
The Basics
Id: 18459
Status: resolved
Worked: 2 hours (120 min)
Priority: 0/
Queue: Net-Daemon

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

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



Subject: ithreadm.t hangs on Win32
In Net-Daemon-0.39, testing ithreadm.t hangs on Win32 for Perl 5.8.8. This appears due to Net::Daemon::Test. The attached patch creates children as detached processes and appears to fix the problem.
Subject: net-daemon-detached-process.patch
--- Test.pm.orig Thu Mar 30 22:44:39 2006 +++ Test.pm Thu Mar 30 22:44:55 2006 @@ -289,7 +289,7 @@ print "Starting process: proc = $path, args = ", join(" ", @_), "\n"; if (!&Win32::Process::Create($pid, $path, join(" ", @_), 0, - Win32::Process::NORMAL_PRIORITY_CLASS(), + Win32::Process::DETACHED_PROCESS(), ".")) { die "Cannot create child process: " . Win32::FormatMessage(Win32::GetLastError());
From: todd.e.rinaldo [...] jpmorgan.com
On Thu Mar 30 22:52:18 2006, DAGOLDEN wrote: Show quoted text
> In Net-Daemon-0.39, testing ithreadm.t hangs on Win32 for Perl
5.8.8. Show quoted text
> This appears due to Net::Daemon::Test. The attached patch creates > children as detached processes and appears to fix the problem. >
This patch also fixed my win32 problems with this test: C:\>perl -V Set up gcc environment - 3.4.2 (mingw-special) Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=MSWin32, osvers=5.0, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT - DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DP ERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO - DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing', optimize='-O2', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='3.4.2 (mingw-special)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf - libpath:"c:\Perl\lib\CORE" -machine:x86' libpth=\lib libs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 - lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lw s2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt perllibs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 - ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -L"c:\Perl\lib\CORE"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_SITECUSTOMIZE Locally applied patches: ActivePerl Build 819 [267479] Iin_load_module moved for compatibility with build 806 PerlEx support in CGI::Carp Less verbose ExtUtils::Install and Pod::Find Patch for CAN-2005-0448 from Debian with modifications Rearrange @INC so that 'site' is searched before 'perl' Partly reverted 24733 to preserve binary compatibility 28671 Define PERL_NO_DEV_RANDOM on Windows 28376 Add error checks after execing PL_cshname or PL_sh_path 28305 Pod::Html should not convert "foo" into ``foo'' 27736 Make perl_fini() run with Sun WorkShop compiler 27619 Bug in Term::ReadKey being triggered by a bug in Term::ReadLine 27549 Move DynaLoader.o into libperl.so 27528 win32_pclose() error exit doesn't unlock mutex 27527 win32_async_check() can loop indefinitely 27515 ignore directories when searching @INC 27359 Fix -d:Foo=bar syntax 27210 Fix quote typo in c2ph 27203 Allow compiling swigged C++ code 27200 Make stat() on Windows handle trailing slashes correctly 27194 Get perl_fini() running on HP-UX again 27133 Initialise lastparen in the regexp structure 27034 Avoid "Prototype mismatch" warnings with autouse 26970 Make Passive mode the default for Net::FTP 26921 Avoid getprotobyname/number calls in IO::Socket::INET 26897,26903 Make common IPPROTO_* constants always available 26670 Make '-s' on the shebang line parse -foo=bar switches 26536 INSTALLSCRIPT versus INSTALLDIRS 26379 Fix alarm() for Windows 2003 26087 Storable 0.1 compatibility 25861 IO::File performace issue 25084 long groups entry could cause memory exhaustion 24699 ICMP_UNREACHABLE handling in Net::Ping Built under MSWin32 Compiled at Aug 29 2006 12:42:41 %ENV: PERL5LIB="M:\j911649_view\CMT_Murex_SNAP\UAT Refresh\lib" @INC: M:\j911649_view\CMT_Murex_SNAP\UAT Refresh\lib c:/Perl/site/lib c:/Perl/lib . C:\>
From: m.nooning [...] comcast.net
Thanks Tony, I paraphrased your reply Net::Daemon bug report 18520. It gets us past ithreads, but it still fails threadm tests, as reported in the other active bug reports. I would like to paste here some things reported on the other active Net::Daemon bug 26952. I hope that you or someone else who knows thread programming and/or the Net::Daemon module can come up with some advice. URL http://cpantesters.perl.org/show/Net-Daemon.html message 111280 indicates that Net::Daemon has not worked on Windows since November 2003, with 5.6.1. So ... how is it that people on Windows have been working around this. Does no one on Windows use Net::Daemon or the DBI? For completeness I will now paste what I wrote for Net::Daemon bug 26952. I need for this module to install as other modules I am trying to install depend upon it. I did perl -V and saw these kinds of statements use5005threads=undef usethreads=define useithreads=define which is what I think I want due to the Thread.pm documentation below. ---------paste Thread.pm documentation ... note that there are many known serious problems with the 5005threads, one of the least of which is that regular expression match variables like $1 are not threadsafe, that is, they easily get corrupted by competing threads. Other problems include more insidious data corruption and mysterious crashes. You are seriously urged to use ithreads instead. ---------End paste Thread.pm documentation The threadm.t file has a timestamp of 1999/08/12 by someone named joe, which implies that it might be outdated. I am wondering if we now want to get rid of the t/threadm.t test altogether. If the net-daemon module still tries to use 5.005 threads, then this module is not suitable for current Windows installations. If it does not, then we would want to get rid of the test for it. On the other hand, if the background Perl itself (5.6 and above versus older versions) determines what is used, then (my guess) we'd want some sort of "if" clause to skip the test if use5005threads=undef, implying perl 5.6 and above. I have to state that I have little knowledge of threads programming, and no knowledge whatsoever about the module in question, so all I can offer is the ideas I already have. That being said, ... anyone else have any ideas? Thanks
From: m.nooning [...] comcast.net
Fixed in Net-Daemon/Net-Daemon-0.40.tar.gz which is now on CPAN
Fixed in Net-Daemon-0.40 and Net-Daemon-0.41