From owner-freebsd-ports@FreeBSD.ORG Sat Jul 17 09:23:21 2010 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12E6E1065674; Sat, 17 Jul 2010 09:23:21 +0000 (UTC) (envelope-from snabb@epipe.com) Received: from tiktik.epipe.com (tiktik.epipe.com [IPv6:2001:470:8940:10::1]) by mx1.freebsd.org (Postfix) with ESMTP id E16C98FC08; Sat, 17 Jul 2010 09:23:19 +0000 (UTC) Received: from tiktik.epipe.com (tiktik.epipe.com [IPv6:2001:470:8940:10::1]) by tiktik.epipe.com (8.14.3/8.14.3) with ESMTP id o6H9NISN085120 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 17 Jul 2010 09:23:18 GMT (envelope-from snabb@epipe.com) X-DKIM: Sendmail DKIM Filter v2.8.3 tiktik.epipe.com o6H9NISN085120 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=epipe.com; s=default; t=1279358599; x=1279963399; bh=cPIqx9bENkwpkG1v68bwVzekM4I8t6Bb1MpgVeCY+R4=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References: MIME-Version:Content-Type; b=fG2fSv5arlRqMW6uT1ZEP3N+B1dGi1Q5CXmNrDFVp+WK9CT7qjpNclZMFvM45Oxqu aOFTM3coirITCuAZNfw5UDiRmBrBFYPACkCu+bbIGciapvM2mJXPJWTL/HnIWmcI7N of3HKpJgB4qve9S0Jygpsd+xW8bMVLIDOtO1DY8E= Date: Sat, 17 Jul 2010 09:23:18 +0000 (UTC) From: Janne Snabb To: Rainer Hurling In-Reply-To: Message-ID: References: <20100717041919.70411.qmail@exxodus.fedaykin.here> <4C414AB5.1060305@gwdg.de> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.2.5 (tiktik.epipe.com [IPv6:2001:470:8940:10::1]); Sat, 17 Jul 2010 09:23:19 +0000 (UTC) Cc: skv@freebsd.org, freebsd-ports@freebsd.org, Mario Sergio Fujikawa Ferreira Subject: Re: lang/perl5.12 segfault (amd64 - 8-STABLE) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2010 09:23:21 -0000 On Sat, 17 Jul 2010, Janne Snabb wrote: > 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. The problem seems to go away when threads are disabled. The problematic line 311 in util.c expands to quite a horrible mess (found this out by doing make util.i): (void)( { if ((PL_curinterp)) { PerlInterpreter* my_perl __attribute__((unused)) = ((PerlInterpreter *)pthread_getspecific(PL_thr_key)); if (((my_perl->Idebug) & 0x00000080)) {(my_perl->Idebug)&=~0x00000080; PerlIO_printf(Perl_PerlIO_stderr(my_perl), "0x%""lx"": (%05ld) calloc %ld x %ld bytes\n",(UV)(ptr),(long)(my_perl->Ian)++,(long)count,(long)total_size); (my_perl->Idebug)|=0x00000080;} } } ); The problem is that my_perl here is NULL pointer. PL_thr_key which is given to pthread_getspecific() to get my_perl is zero. (gdb) p my_perl $1 = (PerlInterpreter *) 0x0 (gdb) p PL_thr_key $2 = 0 (gdb) Someone who understands the perl threading internals needs to figure this out. -- Janne Snabb / EPIPE Communications snabb@epipe.com - http://epipe.com/