Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.99k stars 557 forks source link

Crash in Perl_stashpv_hvname_match #8832

Closed p5pRT closed 12 years ago

p5pRT commented 17 years ago

Migrated from rt.perl.org#41801 (status was 'resolved')

Searchable as RT41801$

p5pRT commented 17 years ago

From mbuxbaum@digital-strata.com

Created by mbuxbaum@digital-strata.com

Am seeing intermittent crashes in function Perl_stashpv_hvname_match.

System is ActivePerl version 5.8.8.820\, on Windows Server 2003 Enterprise x64 Edition.

Two stack traces are below.

Please advise how best to proceed.

Thank you for any assistance.

Sincerely\, Mark Buxbaum Senior Software Engineer Digital Stata\, Inc. mbuxbaum@​digital-strata.com

#========================= First crash =================================#

*----> State Dump for Thread Id 0xf14 \<----*

eax=02894fbc ebx=00fffffb ecx=6d6a2b10 edx=0000000a esi=02894fb8 edi=00000000 eip=28085af7 esp=0240fb90 ebp=0240fbc4 iopl=0 nv up ei pl zr na po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246

*** WARNING​: Unable to verify checksum for C​:\Perl\bin\perl58.dll *** ERROR​: Symbol file could not be found. Defaulted to export symbols for C​:\Perl\bin\perl58.dll - function​: perl58!Perl_stashpv_hvname_match   28085ae3 44 inc esp   28085ae4 240c and al\,0xc   28085ae6 83c00c add eax\,0xc   28085ae9 50 push eax   28085aea ff5634 call dword ptr [esi+0x34]   28085aed 8bf8 mov edi\,eax   28085aef 8d4604 lea eax\,[esi+0x4]   28085af2 59 pop ecx   28085af3 8b08 mov ecx\,[eax]   28085af5 8938 mov [eax]\,edi FAULT ->28085af7 894704 mov [edi+0x4]\,eax ds​:002b​:00000004=????????   28085afa 890f mov [edi]\,ecx   28085afc 897708 mov [edi+0x8]\,esi   28085aff 897904 mov [ecx+0x4]\,edi   28085b02 8b06 mov eax\,[esi]   28085b04 8bce mov ecx\,esi   28085b06 ff5010 call dword ptr [eax+0x10]   28085b09 8d470c lea eax\,[edi+0xc]   28085b0c 5f pop edi   28085b0d 5e pop esi   28085b0e c20400 ret 0x4

*----> Stack Back Trace \<----* *** WARNING​: Unable to verify checksum for C​:\Perl\lib\auto\threads\shared\shared.dll *** ERROR​: Symbol file could not be found. Defaulted to export symbols for C​:\Perl\lib\auto\threads\shared\shared.dll - *** WARNING​: Unable to verify checksum for C​:\Perl\bin\perl.exe *** ERROR​: Module load completed but symbols could not be loaded for C​:\Perl\bin\perl.exe *** ERROR​: Symbol file could not be found. Defaulted to export symbols for C​:\WINDOWS\syswow64\kernel32.dll - ChildEBP RetAddr Args to Child
WARNING​: Stack unwind information not available. Following frames may be wrong. 0240fbc4 28001971 02965564 00000000 007ffffc perl58!Perl_stashpv_hvname_match+0x8a5 0240fbe4 28001e4a 02965564 02966384 007ffffc perl58!Perl_av_store+0x1b8 0240fc04 003e241a 00000000 02966384 6d69cf64 perl58!Perl_av_push+0x1fa 0240fc48 28040019 0e6ecf78 0279d3f8 00000001 shared+0x241a 0240fc84 2805d49d 012a4394 002a4394 280246cf perl58!Perl_sv_compile_2op+0x7b9f 0240fd58 280241f5 002a4394 0e6ecf60 00000042 perl58!Perl_runops_standard+0xc 0240fd6c 280323c6 002a4394 28095504 00000002 perl58!Perl_call_method+0x2b 0240fd9c 2805d49d 0284e620 002a4394 28023fdf perl58!Perl_Guse_safe_putenv_ptr+0xa248 0240fe24 28088a21 002a4394 00000000 00000000 perl58!Perl_runops_standard+0xc 0240ff3c 00401012 00000003 002a3f28 002a2d38 perl58!RunPerl+0x86 0240ffc0 7d4e992a 00000000 00000000 7efdf000 perl+0x1012 0240fff0 00000000 00401016 00000000 00000000 kernel32!BaseProcessInitPostImport+0x8d

#========================= Second crash =================================#

*----> State Dump for Thread Id 0x1694 \<----*

eax=002a277c ebx=00000018 ecx=7614bfb8 edx=0000000a esi=002a2778 edi=00000000 eip=28085af7 esp=0240fcdc ebp=0240fd10 iopl=0 nv up ei pl zr na po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246

*** WARNING​: Unable to verify checksum for C​:\Perl\bin\perl58.dll *** ERROR​: Symbol file could not be found. Defaulted to export symbols for C​:\Perl\bin\perl58.dll - function​: perl58!Perl_stashpv_hvname_match   28085ae3 44 inc esp   28085ae4 240c and al\,0xc   28085ae6 83c00c add eax\,0xc   28085ae9 50 push eax   28085aea ff5634 call dword ptr [esi+0x34]   28085aed 8bf8 mov edi\,eax   28085aef 8d4604 lea eax\,[esi+0x4]   28085af2 59 pop ecx   28085af3 8b08 mov ecx\,[eax]   28085af5 8938 mov [eax]\,edi FAULT ->28085af7 894704 mov [edi+0x4]\,eax ds​:002b​:00000004=????????   28085afa 890f mov [edi]\,ecx   28085afc 897708 mov [edi+0x8]\,esi   28085aff 897904 mov [ecx+0x4]\,edi   28085b02 8b06 mov eax\,[esi]   28085b04 8bce mov ecx\,esi   28085b06 ff5010 call dword ptr [eax+0x10]   28085b09 8d470c lea eax\,[edi+0xc]   28085b0c 5f pop edi   28085b0d 5e pop esi   28085b0e c20400 ret 0x4

*----> Stack Back Trace \<----* *** WARNING​: Unable to verify checksum for C​:\Perl\bin\perl.exe *** ERROR​: Module load completed but symbols could not be loaded for C​:\Perl\bin\perl.exe *** ERROR​: Symbol file could not be found. Defaulted to export symbols for C​:\WINDOWS\syswow64\kernel32.dll - ChildEBP RetAddr Args to Child
WARNING​: Stack unwind information not available. Following frames may be wrong. 0240fd10 280628b1 002a4394 7614abe4 00000018 perl58!Perl_stashpv_hvname_match+0x8a5 0240fd30 28066325 04040804 00000000 7614aaf4 perl58!Perl_sv_setsv_flags+0x9fd 0240fd9c 2805d49d 0284e64c 002a4394 28023fdf perl58!Perl_newSVsv+0x7a 0240fe24 28088a21 002a4394 00000000 00000000 perl58!Perl_runops_standard+0xc 0240ff3c 00401012 00000003 002a3f28 002a2d38 perl58!RunPerl+0x86 0240ffc0 7d4e992a 00000000 00000000 7efdf000 perl+0x1012 0240fff0 00000000 00401016 00000000 00000000 kernel32!BaseProcessInitPostImport+0x8d

Perl Info ``` Flags: category=core severity=high Site configuration information for perl v5.8.8: Configured by SYSTEM at Tue Aug 29 12:39:43 2006. 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='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='', 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='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' libpth=\lib libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib 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='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86' Locally applied patches: ACTIVEPERL_LOCAL_PATCHES_ENTRY Iin_load_module moved for compatibility with build 806 Avoid signal flag SA_RESTART for older versions of HP-UX 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 @INC for perl v5.8.8: C:/Perl/site/lib C:/Perl/lib . Environment for perl v5.8.8: HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\IBM\Director\bin;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\VShell;C:\Program Files (x86)\VShell\Bin;C:\Perl\bin\;c:\mark; PERL_BADLANG (unset) SHELL (unset) ```
p5pRT commented 17 years ago

From @jbenjore

On 3/13/07\, via RT Mark Buxbaum \perlbug\-followup@&#8203;perl\.org wrote​:

0240fbc4 28001971 02965564 00000000 007ffffc perl58!Perl_stashpv_hvname_match+0x8a5 0240fbe4 28001e4a 02965564 02966384 007ffffc perl58!Perl_av_store+0x1b8 0240fc04 003e241a 00000000 02966384 6d69cf64 perl58!Perl_av_push+0x1fa 0240fc48 28040019 0e6ecf78 0279d3f8 00000001 shared+0x241a 0240fc84 2805d49d 012a4394 002a4394 280246cf perl58!Perl_sv_compile_2op+0x7b9f 0240fd58 280241f5 002a4394 0e6ecf60 00000042 perl58!Perl_runops_standard+0xc 0240fd6c 280323c6 002a4394 28095504 00000002 perl58!Perl_call_method+0x2b 0240fd9c 2805d49d 0284e620 002a4394 28023fdf perl58!Perl_Guse_safe_putenv_ptr+0xa248 0240fe24 28088a21 002a4394 00000000 00000000 perl58!Perl_runops_standard+0xc 0240ff3c 00401012 00000003 002a3f28 002a2d38 perl58!RunPerl+0x86 0240ffc0 7d4e992a 00000000 00000000 7efdf000 perl+0x1012 0240fff0 00000000 00401016 00000000 00000000 kernel32!BaseProcessInitPostImport+0x8d

You didn't show your code\, you didn't indicate which modules were loaded\, you didn't indicate anything about whether you're using any threading features or the Win32 pseudo-fork feature. Providing any of those might help. Contacting ActiveState would also be reasonable since its their build.

I'm immediately suspecting some corrupted data because of either bad thread usage or maybe just some buggy XS/C code. Based on where in the code you were probably in av_store\, I guess you were writing to some kind of tied variable. I also guess there's muckery afoot in the object backing the tied variable.

Its all 100% speculation though.

Josh

p5pRT commented 17 years ago

The RT System itself - Status changed from 'new' to 'open'

p5pRT commented 17 years ago

From mbuxbaum@digital-strata.com

More info concerning this crash bug in Perl which I logged a week ago on Mar 13 2007.

Both times this crash occurred the Perl was processing large data files- over 500MB for the first\, and over 1GB for the second.

Note that I could not reproduce the crash a third time using the first data file.

There may be a memory- or size-related factor.

HTH\, Mark Buxbaum Senior Software Engineer Digital Strata

----- Original Message ----- From​: \perlbug\-followup@&#8203;perl\.org To​: \mbuxbaum@&#8203;digital\-strata\.com Sent​: Tuesday\, March 13\, 2007 12​:18 PM Subject​: [perl #41801] perlbug AutoReply​: Crash in Perl_stashpv_hvname_match

Greetings\,

This message has been automatically generated in response to the creation of a perl bug report regarding​: "Crash in Perl_stashpv_hvname_match".

There is no need to reply to this message right now. Your ticket has been assigned an ID of [perl #41801]. Within the next 24-72 hours\, your message will be posted to the perl developers. Please be patient!

Please include the string​:

[perl #41801]

in the subject line of all future correspondence about this issue. To do so\, you may reply to this message (please delete unnecessary quotes and text.)

Thank you\, perlbug-followup@​perl.org

------------------------------------------------------------------------- MIME-Version​: 1.0 X-Spam-Status​: No\, hits=-6.0 required=8.0 tests=BAYES_00\,DK_POLICY_SIGNSOME\,FORGED_RCVD_HELO\,HTML_40_50\,HTML_MESSAGE\,PERLBUG_CONF X-Mailer​: Microsoft Outlook Express 6.00.2900.3028 Received-SPF​: neutral (x1.develooper.com​: local policy) Received-SPF​: pass (x1.develooper.com​: local policy) X-Virus-Checked​: Checked X-Virus-Checked​: Checked X-Old-Spam-Check-BY​: la.mx.develooper.com Content-Type​: multipart/alternative; boundary="----=_NextPart_000_000F_01C76569.964675C0" Message-ID​: \001201c765a4$48d355c0$1ee72145@&#8203;digitalstrata\.com Received​: (qmail 31595 invoked from network); 13 Mar 2007 19​:17​:23 -0000 Received​: from localhost (HELO la.mx.develooper.com) (127.0.0.1) by localhost with SMTP; 13 Mar 2007 19​:17​:23 -0000 Received​: (qmail 31592 invoked by alias); 13 Mar 2007 19​:17​:23 -0000 Received​: from la.mx.develooper.com (HELO x1.develooper.com) (63.251.223.176) by la.mx.develooper.com (qpsmtpd/0.28) with SMTP; Tue\, 13 Mar 2007 12​:17​:13 -0700 Received​: (qmail 31412 invoked by uid 225); 13 Mar 2007 19​:17​:08 -0000 Received​: (qmail 31405 invoked by alias); 13 Mar 2007 19​:17​:08 -0000 Received​: from ip-69-33-231-3.sjc.megapath.net (HELO mail.digital-strata.com) (69.33.231.3) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Tue\, 13 Mar 2007 12​:16​:58 -0700 Received​: from localhost ([127.0.0.1]) by mail.digital-strata.com for perlbug@​perl.org; Tue\, 13 Mar 2007 12​:16​:55 -0800 Delivered-To​: rt-perl5@​netlabs.develooper.com Delivered-To​: perlbug@​perl.org Subject​: Crash in Perl_stashpv_hvname_match Return-Path​: \mbuxbaum@&#8203;digital\-strata\.com X-Msmail-Priority​: Normal X-Spam-Check-BY​: la.mx.develooper.com X-Priority​: 3 X-Old-Spam-Status​: No\, hits=-6.0 required=8.0 tests=BAYES_00\,DK_POLICY_SIGNSOME\,FORGED_RCVD_HELO\,HTML_40_50\,HTML_MESSAGE\,PERLBUG_CONF Date​: Tue\, 13 Mar 2007 12​:17​:37 -0700 X-Mimeole​: Produced By Microsoft MimeOLE V6.00.2900.3028 To​: \perlbug@&#8203;perl\.org From​: "Mark Buxbaum" \mbuxbaum@&#8203;digital\-strata\.com

p5pRT commented 12 years ago

From @cpansprout

I’m going to assume this is the same bug I fixed in the 5.15.x series related to the current package being freed (due to *{__PACKAGE_."​::"} = *whatever) and then subs being defined.

--

Father Chrysostomos

p5pRT commented 12 years ago

@cpansprout - Status changed from 'open' to 'resolved'