Mon Aug 01 10:26:13 2011: Request 69848 was acted upon.
Transaction: Correspondence added by RSCHUPP
Queue: PAR-Packer
Subject: pp created exe crash if useing parallel loops
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=69848 >
On 2011-07-28 09:43:16, [email protected] wrote:
> The following is a minimal code example that exhibits the problem:
Thanks. The good news is that I can easily reproduce the
problem here (with e.g. ActiveState 5.10.1 on 32-bit Windows XP).
The bad news is that I have no clue what's going on.
Looks like the problem occurs in some END block or in the
global destruction phase. Note that a packed executable actually
runs in a custom Perl interpreter which might have some
problem with the fork emulation on Windows.
I keep looking into this, but don't hold your breadth.
Cheers, Roderich
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use diagnostics;
> $|=1;
> my $workers=@ARGV ? shift : 16;
> use Parallel::Loops;
> my @modelfiles=("ct_125_gulfstream_ws_26119a.txt");
> my $pl = Parallel::Loops->new($workers);
> $pl->foreach(\@modelfiles,
> sub {
> my $mf = $_;
> print $mf;
> }
> );
>
> And this is the output of perl-V:
>
> Set up gcc environment - 4.4.5 20101001 (release) [svn/rev.164871 -
> mingw-w64/oz]
> Summary of my perl5 (revision 5 version 12 subversion 2)
> configuration:
>
> Platform:
> osname=MSWin32, osvers=5.2, archname=MSWin32-x64-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=undef
> use64bitint=define, use64bitall=undef, uselongdouble=undef
> usemymalloc=n, bincompat5005=undef
> Compiler:
> cc='gcc', ccflags =' -DNDEBUG -O2 -DWIN32 -D_CONSOLE -DNO_STRICT
> -DHAVE_DES_FCRYPT -DCONSERVATIVE -DUSE_SITECUSTOMIZE
> -DPRIVLIB_LAST_IN_INC -DPERL_IMPLI
> CIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX
> -DWIN64',
> optimize='-O2',
> cppflags='-DWIN32'
> ccversion='', gccversion='4.4.5 20101001 (release) [svn/rev.164871
> - mingw-w64/oz]', gccosandvers=''
> intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
> d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
> ivtype='__int64', ivsize=8, nvtype='double', nvsize=8,
> Off_t='__int64', lseeksize=8
> alignbytes=8, prototype=define
> Linker and Libraries:
> ld='g++', ldflags ='-s -L"C:\Perl64\lib\CORE"'
> libpth="C:\mingw64\lib" "C:\mingw64\x86_64-w64-mingw32\lib"
> libs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32
> -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32
> -lmpr -lwinmm -lve
> rsion -lodbc32 -lodbccp32 -lcomctl32 -lmsvcrt
> perllibs= -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool
> -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid
> -lws2_32 -lmpr -lwinmm
> -lversion -lodbc32 -lodbccp32 -lcomctl32 -lmsvcrt
> libc=-lmsvcrt, so=dll, useshrplib=true, libperl=libperl512.a
> gnulibc_version=''
> Dynamic Linking:
> dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
> cccdlflags=' ', lddlflags='-s -mdll -L"C:\Perl64\lib\CORE"'
>
>
> 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_64_BIT_INT
> USE_ITHREADS USE_LARGE_FILES USE_PERLIO
> USE_PERL_ATOF
> USE_SITECUSTOMIZE
> Locally applied patches:
> ActivePerl Build 1203 [294165]
> 1fd8fa4 Add Wolfram Humann to AUTHORS
> f120055 make string-append on win32 100 times faster
> a2a8d15 Define _USE_32BIT_TIME_T for VC6 and VC7
> 007cfe1 Don't pretend to support really old VC++ compilers
> 6d8f7c9 Get rid of obsolete PerlCRT.dll support
> d956618 Make Term::ReadLine::findConsole fall back to STDIN if
> /dev/tty can't be opened
> 321e50c Escape patch strings before embedding them in
> patchlevel.h
> Built under MSWin32
> Compiled at Dec 9 2010 00:50:22
> %ENV:
> PERL5OPT="-MConfig_w64"
> @INC:
> C:/Perl64/site/lib
> C:/Perl64/lib
> .
>
>
> The file " C:\Perl64\site\lib\PAR \ Packer .pm" has
> our $VERSION = '1.010';
>
> Actually my previous version of Par::Packer is 1.008 and showed this
> problem so I updated it to 1.010 and hope this problem will go away
> but seems it is not.
> (Also if we do not use parallel loop the packed code run fine.)
>
> Thank you.
>
> Frank
>
>
> -----Original Message-----
> From: Roderich Schupp via RT [mailto:[email protected]]
> Sent: Wednesday, July 27, 2011 6:04 PM
> To: Wang, Frank
> Subject: [rt.cpan.org #69848] pp created exe crash if useing parallel
> loops
>
> <URL: https://rt.cpan.org/Ticket/Display.html?id=69848 >
>
> On 2011-07-27 17:41:15, [email protected] wrote:
> > When using pp to create a stanalone executable in activeperl for
> x64,
> > if the source code used Parallel::Loops, the executable will crash
> and
> > the following is the problem detail:
>
> This information is useless.
>
> Please provide a minimal code example that exhibits the problem.
> Also include the output of "perl -V" and the versions of PAR and
> PAR::Packer used.
>
> > But the perl code itself works without any problem.
>
> By that you mean: the code works when not packed?
>
> Cheers, Roderich
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________