Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Can you try out NPEREZ/POEx-WorkerPool-0.092560 /t/01-basic.t? On my humble machine it consumes all my memory (512mb ) and slows my machine to a crawl.

If I uncomment

sub POE::Kernel::TRACE_EVENTS () { 1 }
perl crashes with
Faulting application perl.exe, version 0.0.0.0, faulting module perl51 +0.dll, version 0.0.0.0, fault address 0x000ee6ad.
If I edit
my $steps = 1; my $good = 1;
it completes with memory usage peaking at 250mb
ok 1 - Worker(5) queued Job(58539D19-6C02-1014-81AA-B236FAD9A4AA) # # Worker(5) queued Job(58539D19-6C02-1014-81AA-B236FAD9A4AA) ok 2 - Worker(5) has started processing its 1 jobs # # Worker(5) has started processing its 1 jobs ok 3 - Worker(7) queued Job(5860A574-6C02-1014-81AA-B236FAD9A4AA) # # Worker(7) queued Job(5860A574-6C02-1014-81AA-B236FAD9A4AA) ok 4 - Worker(7) has started processing its 1 jobs # # Worker(7) has started processing its 1 jobs ok 5 - Worker(3) queued Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) # # Worker(3) queued Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) ok 6 - Worker(3) has started processing its 1 jobs # # Worker(3) has started processing its 1 jobs ok 7 - Worker(5) dequeued Job(58539D19-6C02-1014-81AA-B236FAD9A4AA) # # Worker(5) dequeued Job(58539D19-6C02-1014-81AA-B236FAD9A4AA) ok 8 - Worker(7) dequeued Job(5860A574-6C02-1014-81AA-B236FAD9A4AA) # # Worker(7) dequeued Job(5860A574-6C02-1014-81AA-B236FAD9A4AA) ok 9 - Worker(3) dequeued Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) # # Worker(3) dequeued Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) ok 10 - We successfully got the enqueue error exception ok 11 - Worker(3) has started Job(586B0280-6C02-1014-81AA-B236FAD9A4AA +) # # Worker(3) has started Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) ok 12 - Worker(3) is %20 with Job(586B0280-6C02-1014-81AA-B236FAD9A4AA +) # Worker(3) is %20 with Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) # Job(586B0280-6C02-1014-81AA-B236FAD9A4AA) failed with: Died at C:/sn +ipPOEx-WorkerPool-0.092560/t/lib/FailJob.pm line 18. ok 13 - Got the right job isa FailJob ok 14 - Worker(3) has finished processing its jobs. Complete: 0, Faile +d: 1 # # Worker(3) has finished processing its jobs. Complete: 0, Failed: 1
Summary of my perl5 (revision 5 version 10 subversion 1) configuration +: Commit id: 5348debf9fd57fc15c26529386769684fab96e57 Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und +ef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags =' -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPL +ICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_R +EADFIX', optimize='-s -O2', cppflags='-DWIN32' ccversion='', gccversion='3.4.5', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long lo +ng', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags ='-s -L"c:\perl\5.10.1\lib\MSWin32-x86-multi-thr +ead\CORE" -L"C:\MinGW\lib"' libpth=C:\MinGW\lib libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 +-ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -l +mpr -lwinmm -lversion -lodbc32 -lodbccp32 perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdl +g32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_3 +2 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 libc=, so=dll, useshrplib=true, libperl=libperl510.a gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -s -L"c:\perl\5.10.1\lib\MSWin32- +x86-multi-thread\CORE" -L"C:\MinGW\lib"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO Built under MSWin32 Compiled at Aug 29 2009 22:00:18 @INC: C:/perl/5.10.1/lib/MSWin32-x86-multi-thread C:/perl/5.10.1/lib C:/perl/site/5.10.1/lib/MSWin32-x86-multi-thread C:/perl/site/5.10.1/lib .

Replies are listed 'Best First'.
Re: POEx-WorkerPool-0.092560/t/01-basic.t memory usage
by Anonymous Monk on Sep 23, 2009 at 07:05 UTC
    POEx-WorkerPool-0.092650 was just released, i'm still encountering the same errors. With
    my $steps = 1; my $good = 2;
    Faulting application perl.exe, version 0.0.0.0, faulting module perl510.dll, version 0.0.0.0, fault address 0x000209e2.
    with
    my $steps = 1; my $good = 1; .. # Worker(3) dequeued Job(D2DB495B-6C1A-1014-BE9A-DA74C64800D2) ok 10 - We successfully got the enqueue error exception
    Perl has encountered an error and needs to close. Faulting application perl.exe, version 0.0.0.0, faulting module , version 0.0.0.0, fault address 0x00000000.
    with
    sub POE::Kernel::TRACE_EVENTS () { 1 } ... 488: <ev> enqueued event 7 ``_garbage_collect'' from session 7 (Worker +:F38A37D0-6C1A-1014-8F7C-D26FC64800D2) to session7 (Worker:F38A37D0-6 +C1A-1014-8F7C-D26FC64800D2) at 1253688902.82655 at C:/perl/site/5.10. +1/lib/POE/Resource/Events.pm line 71 488: <ev> Dispatching event -1520 ``_start'' () from session 2 (MyTest +er=HASH(0x29023bc)) to POEx::WorkerPool::Worker=HASH(0x9f7c924) at C: +/perl/site/5.10.1/lib/POE/Kernel.pm line 906 488: <ev> dispatching event -1520 ``_start'' to session 9 (POEx::Worke +rPool::Worker=HASH(0x9f7c924)) at C:/perl/site/5.10.1/lib/POE/Kernel. +pm line 1048

    AppName: perl.exe AppVer: 0.0.0.0 ModName: perl510.dll ModVer: 0.0.0.0 Offset: 000ee6ad