Hi, I found a bit more breakage in glibc for amd64.
screen is accessing broken pointers. Sometimes it segfaults, sometimes it modifies itself (it's pretty funny when it says /var/run/screen should be mode 777 instead of 775 ;). ifup -a segfaults. Looking at the gdb backtrace it seems to be caused by the same bug in glibc startup that breaks screen. sshd aborts on SIGTRAP when recieving an incoming connection. In all cases, stack gets partialy messed up. I'm attaching the gdb logs. Petr, do you have any idea what could be going on? -- Robert Millan
[GDB will not be able to debug user-mode threads: /usr/lib/debug/libthread_db.so: Undefined symbol "ps_pdwrite"] 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 conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)... (gdb) r -ddd Starting program: /usr/sbin/sshd -ddd (no debugging symbols found)...(no debugging symbols found)...debug2: load_server_config: filename /etc/ssh/sshd_config debug2: load_server_config: done config len = 635 debug2: parse_server_config: config /etc/ssh/sshd_config len 635 debug1: sshd version OpenSSH_4.2p1 Debian-6+kbsd debug3: Not a RSA1 key file /etc/ssh/ssh_host_rsa_key. debug1: read PEM private key done: type RSA debug1: private host key: #0 type 1 RSA debug3: Not a RSA1 key file /etc/ssh/ssh_host_dsa_key. debug1: read PEM private key done: type DSA debug1: private host key: #1 type 2 DSA debug1: rexec_argv[0]='/usr/sbin/sshd' debug1: rexec_argv[1]='-ddd' debug2: fd 3 setting O_NONBLOCK debug1: Bind to port 22 on 0.0.0.0. Server listening on 0.0.0.0 port 22. debug2: fd 4 setting O_NONBLOCK debug1: Bind to port 22 on ::. Server listening on :: port 22. debug1: fd 5 clearing O_NONBLOCK debug1: Server will not fork when running in debugging mode. debug3: send_rexec_state: entering fd = 8 config len 635 debug3: ssh_msg_send: type 0 debug3: send_rexec_state: done debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8 Program received signal SIGTRAP, Trace/breakpoint trap. 0x0000000800552ca0 in ?? () from /lib/ld-kfreebsd-x86-64.so.1 (gdb) bt #0 0x0000000800552ca0 in ?? () from /lib/ld-kfreebsd-x86-64.so.1 #1 0x0000000000000000 in ?? () [more messed up stack follows]
[GDB will not be able to debug user-mode threads: /usr/lib/debug//libthread_db.so: Undefined symbol "ps_pdwrite"] 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 conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)... (gdb) r Starting program: /usr/bin/screen Program received signal SIGHUP, Hangup. 0x0000000800b3b462 in sigsuspend () at string2.h:998 998 string2.h: No such file or directory. in string2.h (gdb) bt #0 0x0000000800b3b462 in sigsuspend () at string2.h:998 #1 0x0000000800b9781d in __libc_pause () at ../sysdeps/posix/pause.c:37 #2 0x0000000000424fb2 in ?? () #3 0x0000000000407b96 in ?? () #4 0x0000000800b290dd in __libc_start_main (main=0x406ac0 <_init+16856>, argc=1, ubp_av=0x7fffffffed30, init=0x440570 <_init+253064>, fini=Variable "fini" is not available. ) at ../sysdeps/generic/libc-start.c:250 #5 0x00000000004031dc in ?? () #6 0x00007fffffffed18 in ?? () #7 0x00000008006679c0 in _dl_starting_up () from /lib/ld-kfreebsd-x86-64.so.1 #8 0x0000000000000000 in ?? () [more messed up stack follows]
[GDB will not be able to debug user-mode threads: /usr/lib/debug/libthread_db.so: Undefined symbol "ps_pdwrite"] 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 conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)... (gdb) r -a Starting program: /sbin/ifup -a Program received signal SIGSEGV, Segmentation fault. 0x000000080065243f in *__GI_____strtol_l_internal ( nptr=0x1 <Error reading address 0x1: Bad address>, endptr=0x0, base=10, group=0, loc=0x80083d880) at strtol_l.c:291 291 strtol_l.c: No such file or directory. in strtol_l.c (gdb) bt #0 0x000000080065243f in *__GI_____strtol_l_internal ( nptr=0x1 <Error reading address 0x1: Bad address>, endptr=0x0, base=10, group=0, loc=0x80083d880) at strtol_l.c:291 #1 0x0000000000404bae in ?? () #2 0x0000000000404249 in ?? () #3 0x0000000000402950 in ?? () #4 0x0000000000401ed8 in ?? () #5 0x000000080063d0dd in __libc_start_main (main=0x401670, argc=2, ubp_av=0x7fffffffed28, init=0x404be0, fini=Variable "fini" is not available. ) at ../sysdeps/generic/libc-start.c:250 #6 0x000000000040146c in ?? () #7 0x00007fffffffed08 in ?? () #8 0x000000080061f9c0 in _dl_starting_up () from /lib/ld-kfreebsd-x86-64.so.1 #9 0x0000000000000000 in ?? () [more messed up stack follows]