Date: Sat, 17 Jul 2010 08:11:36 +0000 (UTC) From: Janne Snabb <snabb@epipe.com> To: Rainer Hurling <rhurlin@gwdg.de> Cc: freebsd-ports@freebsd.org, skv@freebsd.org, Mario Sergio Fujikawa Ferreira <lioux@freebsd.org> Subject: Re: lang/perl5.12 segfault (amd64 - 8-STABLE) Message-ID: <alpine.BSF.2.00.1007170744070.9805@tiktik.epipe.com> In-Reply-To: <4C414AB5.1060305@gwdg.de> References: <20100717041919.70411.qmail@exxodus.fedaykin.here> <4C414AB5.1060305@gwdg.de>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Same problem here. Here is the gdb output: #0 0x00000000004ddbd3 in Perl_safesyscalloc (count=1, size=4072) at util.c:311 311 DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) calloc %ld x %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)count,(long)total_size)); (gdb) bt #0 0x00000000004ddbd3 in Perl_safesyscalloc (count=1, size=4072) at util.c:311 #1 0x000000000054a28f in Perl_get_arena (my_perl=0x801002500, arena_size=3880, bodytype=SVt_PV) at sv.c:737 #2 0x000000000054a584 in S_more_bodies (my_perl=0x801002500, sv_type=SVt_PV) at sv.c:1104 #3 0x000000000054b829 in Perl_sv_upgrade (my_perl=0x801002500, sv=0x801002c98, new_type=SVt_PV) at sv.c:1398 #4 0x00000000005722ff in Perl_sv_setpv (my_perl=0x801002500, sv=0x801002c98, ptr=0x791d5a "") at sv.c:4387 #5 0x0000000000748695 in perl_construct (my_perl=0x801002500) at perl.c:254 #6 0x000000000071e6a7 in main (argc=3, argv=0x7fffffffe368, env=0x7fffffffe388) at miniperlmain.c:111 It is somehow related to the "Perl_debug_log" which is the first argument of PerlIO_printf. But I can not figure out why, too many layers of #defines and calls within calls. If I insert a line which references Perl_debug_log before the problematic line, it will dump core on that line, gdb output: Program received signal SIGSEGV, Segmentation fault. 0x00000000006f2de0 in Perl_PerlIO_stderr (my_perl=0x0) at perlio.c:4981 4981 if (!PL_perlio) { I cannot inspect PL_perlio because it is another macro, from perlapi.h: #define PL_perlio (*Perl_Iperlio_ptr(aTHX)) aTHX is defined in perl.h to be my_perl, which seems to be a null pointer: (gdb) p my_perl $1 = (PerlInterpreter *) 0x0 So, the miniperl process dies because it cannot de-reference this NULL pointer. I have no clue where it should be initialized. -- Janne Snabb / EPIPE Communications snabb@epipe.com - http://epipe.com/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1007170744070.9805>