From owner-freebsd-current@FreeBSD.ORG Wed Sep 14 15:45:58 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12C07106566B; Wed, 14 Sep 2011 15:45:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id C6AA18FC15; Wed, 14 Sep 2011 15:45:57 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 59FDE46B23; Wed, 14 Sep 2011 11:45:57 -0400 (EDT) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id DEFE88A03C; Wed, 14 Sep 2011 11:45:56 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Date: Wed, 14 Sep 2011 11:45:55 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110617; KDE/4.5.5; amd64; ; ) References: <20110914123607.GM65366@felucia.tataz.chchile.org> <20110914125953.GX17489@deviant.kiev.zoral.com.ua> In-Reply-To: <20110914125953.GX17489@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201109141145.55621.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Wed, 14 Sep 2011 11:45:57 -0400 (EDT) Cc: Kostik Belousov , Jeremie Le Hen , David Xu , Peter Pentchev Subject: Re: Segfault in libthr.so on 9.0-BETA2 (with stunnel FWIW) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Sep 2011 15:45:58 -0000 On Wednesday, September 14, 2011 8:59:53 am Kostik Belousov wrote: > On Wed, Sep 14, 2011 at 02:36:07PM +0200, Jeremie Le Hen wrote: > > Hi list, > > > > I've recently migrated my services from a box running 8.1-STABLE to > > another one running 9.0-BETA2. > > > > I run stunnel 4.28 on 8.1-STABLE, and it has run flawlessly so far. I > > compiled manually this very version on 9.0-BETA2. But I get the > > following segfault: > > > > Program received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 803008c00 (LWP 100496/stunnel)] > > 0x000000080110d359 in gmtime_r () from /lib/libc.so.7 > > (gdb) thread > > [Current thread is 3 (Thread 803008c00 (LWP 100496/stunnel))] > > (gdb) bt > > #0 0x000000080110d359 in gmtime_r () from /lib/libc.so.7 > > #1 0x000000080110cdde in gmtime_r () from /lib/libc.so.7 > > #2 0x000000080110dab4 in gmtime_r () from /lib/libc.so.7 > > #3 0x000000080110dcc8 in gmtime_r () from /lib/libc.so.7 > > #4 0x0000000800e1d9e8 in pthread_once () from /lib/libthr.so.3 > > #5 0x000000080110ca9f in timegm () from /lib/libc.so.7 > > #6 0x0000000805dff8d9 in OPENSSL_gmtime () from /usr/local/lib/libcrypto.so.7 > > #7 0x0000000805e74631 in ASN1_UTCTIME_adj () from /usr/local/lib/libcrypto.so.7 > > #8 0x0000000805e9462d in X509_time_adj_ex () from /usr/local/lib/libcrypto.so.7 > > #9 0x0000000805e9478c in X509_cmp_time () from /usr/local/lib/libcrypto.so.7 > > #10 0x0000000805e9496d in internal_verify () from /usr/local/lib/libcrypto.so.7 > > #11 0x0000000805e95f46 in X509_verify_cert () from /usr/local/lib/libcrypto.so.7 > > #12 0x0000000805b7f4c8 in ssl_verify_cert_chain () from /usr/local/lib/libssl.so.7 > > #13 0x0000000805b5d6e3 in ssl3_get_client_certificate () from /usr/local/lib/libssl.so.7 > > #14 0x0000000805b612bc in ssl3_accept () from /usr/local/lib/libssl.so.7 > > #15 0x0000000000406f6e in init_ssl (c=0x803093000) at client.c:329 > > #16 0x00000000004069a6 in do_client (c=0x803093000) at client.c:202 > > #17 0x000000000040676b in run_client (c=0x803093000) at client.c:150 > > #18 0x00000000004066cf in client (arg=0x803093000) at client.c:123 > > #19 0x0000000800e18224 in pthread_getprio () from /lib/libthr.so.3 > > #20 0x0000000000000000 in ?? () > > > > > > Note that I tried with the newest version of stunnel, it crashes at the > > same place. I also tried libssl.so both from the base system and from > > the ports, same thing. > > You need to compile both libc and libthr with debugging symbols and > do a backtrace with such libraries. You really only need symbols from libc. timegm() probably inlines time1() and maybe even gmtsub() which calls pthread_once() to invoke the static routine gmt_init() in src/lib/libc/stdtime/localtime.c. I wonder if this is similar to the crashes seen in cvsup when parsing /usr/share/zoneinfo/UTC (as gmt_init() is going to parse /usr/share/zoneinfo/UTC as well). -- John Baldwin