Re: Parallel::ForkManager and utf8::all crash perl on Windows ( use open qw{:encoding(UTF-8) :std}; fork; ## PerlIO/encoding.dll )
by Anonymous Monk on Dec 22, 2012 at 10:48 UTC
|
Simpler test perl -e " use open qw{:encoding(UTF-8) :std}; fork; "
c0000005 exception at encoding+0x356a
Exception number: c0000005 (access violation)
*----> State Dump for Thread Id 0x818 <----*
eax=00000000 ebx=00a39014 ecx=00a8796c edx=00a39014 esi=009d9edc edi=0
+0a397a8
eip=70fc356a esp=0022f770 ebp=00000000 iopl=0 nv up ei pl nz n
+a po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=0
+0000206
*** ERROR: Symbol file could not be found. Defaulted to export symbol
+s for D:\citrusperl\lib\auto\PerlIO\encoding\encoding.dll -
function: encoding
70fc354a 348b xor al,0x8b
70fc354c 5c pop esp
70fc354d 2430 and al,0x30
70fc354f 8b30 mov esi,[eax]
70fc3551 8dbb94070000 lea edi,[ebx+0x794]
70fc3557 8b4e38 mov ecx,[esi+0x38]
70fc355a 85c9 test ecx,ecx
70fc355c 0f844a010000 je encoding+0x36ac (70fc36ac)
70fc3562 8b8314010000 mov eax,[ebx+0x114]
70fc3568 8b2b mov ebp,[ebx]
FAULT ->70fc356a 8b500c mov edx,[eax+0xc] ds:0023:00
+00000c=????????
70fc356d 85d2 test edx,edx
70fc356f 0f848d010000 je encoding+0x3702 (70fc3702)
70fc3575 8b02 mov eax,[edx]
70fc3577 c7421802000000 mov dword ptr [edx+0x18],0x2
70fc357e c74210ffffffff mov dword ptr [edx+0x10],0xfffff
+fff
70fc3585 8b00 mov eax,[eax]
70fc3587 c7400800000000 mov dword ptr [eax+0x8],0x0
70fc358e 8b8310010000 mov eax,[ebx+0x110]
70fc3594 2b6b0c sub ebp,[ebx+0xc]
70fc3597 8b00 mov eax,[eax]
*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may
+be wrong.
ChildEBP RetAddr Args to Child
00000000 00000000 00000000 00000000 00000000 encoding+0x356a
*
there are a few recent bug reports
#111344: warnings FATAL => utf8 not working on PerlIO::encoding layer and open pragma
#115262: PerlIO::encoding produces malformed utf8
#115692: PerlIO::encoding can croak, aborting cleanup
PUSHSTACKi/POPSTACK#98060: possible bug in PerlIO::encoding
and http://perl5.git.perl.org/perl.git/history/HEAD:/ext/PerlIO-encoding shows very recent edits
but , while compiling the very latest works, the tests fail with Unknown PerlIO layer "encoding"
So you should probably perlbug this, and maybe mention this thread and probably that PUSHSTACKi report
| [reply] [d/l] [select] |
|
| [reply] |
|
| [reply] |
Re: Parallel::ForkManager and utf8::all crash perl on Windows
by karlgoethebier (Abbot) on Dec 22, 2012 at 09:31 UTC
|
Mmh, it crashed under Mac OS X too:
Karls-Mac-mini:~ Karl$ ./crash.pl
1..0 # SKIP Need utf8::all for this test crashing on Windows
But installing utf8::all fixed it...
Karls-Mac-mini:~ Karl$ ./crash.pl
1..1
ok 1
Don't know if this helps. Best regards, Karl
«The Crux of the Biscuit is the Apostrophe»
| [reply] [d/l] [select] |
|
Mmh, it crashed under Mac OS X too: crash means segfault, not failing test
| [reply] |
|
| [reply] [d/l] |
|
|
|
Re: Parallel::ForkManager and utf8::all crash perl on Windows
by Athanasius (Archbishop) on Dec 22, 2012 at 09:53 UTC
|
FWIW, I get the same result running Parallel::ForkManager 0.7.9 (the latest version) with utf8::all 0.007 under Strawberry Perl 5.16.0.
So I tried upgrading utf8::all to the latest version, namely 0.009, but the installation failed for both Perl 5.14.2 and Perl 5.16.0.
Can you perhaps re-work your script to avoid using utf8::all?
| [reply] |
|
| [reply] |
Re: Parallel::ForkManager and utf8::all crash perl on Windows
by tobyink (Canon) on Dec 22, 2012 at 10:03 UTC
|
What happens if you load the modules in the other order; load utf8::all first?
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
| [reply] |
|
Same crash.
(Even if I remove all the Test::More related code.)
| [reply] |