Date: Wed, 14 Sep 2011 11:45:55 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-current@freebsd.org Cc: Kostik Belousov <kostikbel@gmail.com>, Jeremie Le Hen <jeremie@le-hen.org>, David Xu <davidxu@freebsd.org>, Peter Pentchev <roam@ringlet.net> Subject: Re: Segfault in libthr.so on 9.0-BETA2 (with stunnel FWIW) Message-ID: <201109141145.55621.jhb@freebsd.org> In-Reply-To: <20110914125953.GX17489@deviant.kiev.zoral.com.ua> References: <20110914123607.GM65366@felucia.tataz.chchile.org> <20110914125953.GX17489@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201109141145.55621.jhb>