[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

more glibc breakage on kfreebsd-amd64



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]

Reply to: