From owner-freebsd-current@FreeBSD.ORG Fri Aug 27 19:04:22 2010 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 8A77410656A4 for ; Fri, 27 Aug 2010 19:04:22 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 264F18FC14 for ; Fri, 27 Aug 2010 19:04:21 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id o7RJ4796072727 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 27 Aug 2010 22:04:07 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id o7RJ47F1036053; Fri, 27 Aug 2010 22:04:07 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id o7RJ47gT036052; Fri, 27 Aug 2010 22:04:07 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 27 Aug 2010 22:04:07 +0300 From: Kostik Belousov To: Fabian Keil Message-ID: <20100827190407.GA2396@deviant.kiev.zoral.com.ua> References: <20100827182108.12764ff4@r500.local> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="w7W5gc0PssggrLAk" Content-Disposition: inline In-Reply-To: <20100827182108.12764ff4@r500.local> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-2.2 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_50, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: freebsd-current@freebsd.org Subject: Re: emacs aborting on exit with recent lib/libc/stdlib/atexit.c changes 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: Fri, 27 Aug 2010 19:04:22 -0000 --w7W5gc0PssggrLAk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Aug 27, 2010 at 06:21:08PM +0200, Fabian Keil wrote: > The recent lib/libc/stdlib/atexit.c changes broke emacs (23.2_2,2) for me. > It aborts on exit (C-x C-c) after receiving SIGBUS: >=20 > fk@r500 ~ $gdb emacs > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you = are > welcome to change it and/or distribute copies of it under certain conditi= ons. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for detail= s. > This GDB was configured as "amd64-marcel-freebsd"... > (gdb) run > Starting program: /usr/local/bin/emacs=20 > [New LWP 100281] > [New Thread 1260600 (LWP 100281)] >=20 > Program received signal SIGBUS, Bus error. > [Switching to Thread 1260600 (LWP 100281)] > 0x00000008045c432d in __elf_phdr_match_addr () from /lib/libc.so.7 > (gdb) where > #0 0x00000008045c432d in __elf_phdr_match_addr () from /lib/libc.so.7 > #1 0x0000000803038abb in __pthread_cxa_finalize () from /lib/libthr.so.3 > #2 0x00000008045bdfa7 in __cxa_finalize () from /lib/libc.so.7 > #3 0x00000008045682c7 in exit () from /lib/libc.so.7 > #4 0x0000000000556817 in Fkill_emacs (arg=3DCould not find the frame bas= e for "Fkill_emacs". > ) at emacs.c:2146 > #5 0x0000000000600ec0 in Ffuncall (nargs=3D1, args=3D0x7fffffffc880) at = eval.c:3024 > #6 0x0000000000658d47 in Fbyte_code (bytestr=3D8602321, vector=3D8602357= , maxdepth=3D20) at bytecode.c:680 > #7 0x00000000006017e6 in funcall_lambda (fun=3D8602229, nargs=3D0, arg_v= ector=3D0x7fffffffcdc8) at eval.c:3211 > #8 0x00000000006011e0 in Ffuncall (nargs=3D1, args=3D0x7fffffffcdc0) at = eval.c:3070 > #9 0x0000000000658d47 in Fbyte_code (bytestr=3D9558105, vector=3D9558141= , maxdepth=3D20) at bytecode.c:680 > #10 0x00000000006017e6 in funcall_lambda (fun=3D9558029, nargs=3D1, arg_v= ector=3D0x7fffffffd358) at eval.c:3211 > #11 0x00000000006011e0 in Ffuncall (nargs=3D2, args=3D0x7fffffffd350) at = eval.c:3070 > #12 0x00000000005fb954 in Fcall_interactively (function=3D11961778, recor= d_flag=3D11544578, keys=3D20138021) at callint.c:869 > #13 0x0000000000600f36 in Ffuncall (nargs=3D4, args=3D0x7fffffffd760) at = eval.c:3030 > #14 0x00000000006008fd in call3 (fn=3D11756290, arg1=3D11961778, arg2=3D1= 1544578, arg3=3D20138021) at eval.c:2850 > #15 0x000000000056b7ac in Fcommand_execute (cmd=3D11961778, record_flag= =3D11544578, keys=3D20138021, special=3D11544674) at keyboard.c:10507 > #16 0x000000000055cc69 in read_char (commandflag=3D1, nmaps=3D2, maps=3D0= x7fffffffdb70, prev_event=3D11544578, used_mouse_menu=3D0x7fffffffded4, end= _time=3D0x0) > at keyboard.c:3166 > #17 0x000000000056880e in read_key_sequence (keybuf=3D0x7fffffffe280, buf= size=3D30, prompt=3D11544578, dont_downcase_last=3D0, can_return_switch_fra= me=3D1,=20 > fix_current_buffer=3D1) at keyboard.c:9512 > #18 0x0000000000558a33 in command_loop_1 () at keyboard.c:1643 > #19 0x00000000005fe0aa in internal_condition_case (bfun=3D0x5586a0 , handlers=3D11629954, hfun=3D0x557f90 ) at eval.c:1490 > #20 0x000000000055836a in command_loop_2 () at keyboard.c:1360 > #21 0x00000000005fda2c in internal_catch (tag=3D11621170, func=3D0x558350= , arg=3D11544578) at eval.c:1226 > #22 0x0000000000558320 in command_loop () at keyboard.c:1339 > #23 0x0000000000557a85 in recursive_edit_1 () at keyboard.c:954 > #24 0x0000000000557c45 in Frecursive_edit () at keyboard.c:1016 > #25 0x00000000005560b8 in main (argc=3D1, argv=3D0x7fffffffe840) at emacs= .c:1833 >=20 > Reverting to lib/libc/stdlib/atexit.c 1.9 gets it working again, > using 1.11 brings back the crashes. I didn't csup between those > versions and thus don't have 1.10 in git, but given that it's a > style change it shouldn't matter. >=20 > I'm using amd64 and so far I only noticed the problem with emacs. >=20 > Is anyone else seeing this? Reverting the atexit change might cover the issue in some other place. Please build and install rtld, libc and libthr with symbolic debug information. On of the way to do this is to: cd /usr/src/libexec/rtld-elf make obj && make depend && make all install DEBUG_FLAGS=3D-g cd ../../lib/libc make obj && make depend && make all install DEBUG_FLAGS=3D-g cd ../../lib/libthr make obj && make depend && make all install DEBUG_FLAGS=3D-g Then, reproduce the crash and get "bt full" output from the core. I may need some further information after that. Thank you for the report. --w7W5gc0PssggrLAk Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkx4DCcACgkQC3+MBN1Mb4hUswCeIrmIuBWYBjtdyI4vpoZHPBp/ 98gAoPZM7eTMFMMdKVpx9hMEkVbxCQ6L =1g5f -----END PGP SIGNATURE----- --w7W5gc0PssggrLAk--