Re: Stuck CLOSED sockets / sshd / zombies...
--KQtzXpABaZjuvfJ9
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Tue, Apr 08, 2014 at 10:06:36PM +0100, Karl Pielorz wrote:
>=20
>=20
> --On 8 April 2014 15:33:53 -0400 John Baldwin <jhb@freebsd.org> wrote:
>=20
> > I think this patch only changes debug info, so I think you can just bui=
ld
> > and install and re-attach gdb without having to restart sshd. Also, th=
is
> > patch should only require you to build and install libexec/rtld-elf.
>=20
> Ok, patched, re-attached and re-ran bt (output is below). I've got gdb fr=
om=20
> ports building on that machine but I probably won't be able to do any mor=
e=20
> with it tonight.
>=20
> -Karl
>=20
> ---
>=20
> [Switching to LWP 100218]
> 0x00000008038ea89c in __error () from /lib/libthr.so.3
> (gdb) bt
> #0 0x00000008038ea89c in __error () from /lib/libthr.so.3
> #1 0x00000008038e104f in __thr_rwlock_rdlock (rwlock=3D0x803af9480,=20
> flags=3D<value optimized out>, tsp=3D<value optimized out>)
> at /usr/src/lib/libthr/thread/thr_umtx.c:277
> #2 0x00000008038e821c in _thr_rtld_rlock_acquire (lock=3D0x803af9480) at=
=20
> atomic.h:143
> #3 0x000000080064f9a2 in _rtld_get_stack_prot () from /libexec/ld-elf.so=
=2E1
> #4 0x00000008006498c9 in r_debug_state () from /libexec/ld-elf.so.1
> #5 0x00000008006470cd in .text () from /libexec/ld-elf.so.1
> #6 0x000000000041072c in grace_alarm_handler (sig=3D-17504) at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/sshd.c:378
> #7 <signal handler called>
> #8 0x00000008038ea89c in __error () from /lib/libthr.so.3
> #9 0x00000008038e104f in __thr_rwlock_rdlock (rwlock=3D0x803af9480,=20
> flags=3D<value optimized out>, tsp=3D<value optimized out>)
> at /usr/src/lib/libthr/thread/thr_umtx.c:277
> #10 0x00000008038e821c in _thr_rtld_rlock_acquire (lock=3D0x803af9480) at=
=20
> atomic.h:143
> #11 0x000000080064f9a2 in _rtld_get_stack_prot () from /libexec/ld-elf.so=
=2E1
> #12 0x00000008006498c9 in r_debug_state () from /libexec/ld-elf.so.1
> #13 0x00000008006470cd in .text () from /libexec/ld-elf.so.1
> #14 0x000000000042f9dd in sshpam_sigchld_handler (sig=3D<value optimized=
=20
> out>) at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/auth-pam.c:152
> #15 <signal handler called>
> #16 0x0000000800653aea in _rtld_atfork_post () from /libexec/ld-elf.so.1
> #17 0x000000080064a1eb in dlclose () from /libexec/ld-elf.so.1
> #18 0x0000000800edd121 in openpam_clear_chains () from /usr/lib/libpam.so=
=2E5
> #19 0x0000000800edd0bc in openpam_clear_chains () from /usr/lib/libpam.so=
=2E5
> #20 0x0000000800edd0bc in openpam_clear_chains () from /usr/lib/libpam.so=
=2E5
> #21 0x0000000800edd061 in openpam_clear_chains () from /usr/lib/libpam.so=
=2E5
> #22 0x0000000800ed99e7 in pam_end () from /usr/lib/libpam.so.5
> #23 0x000000000042e15d in sshpam_cleanup () at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/auth-pam.c:614
> #24 0x000000000041d58f in do_cleanup (authctxt=3D0x80401a600) at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/session.c:2732
> #25 0x000000000041064f in ssh_cleanup_exit (i=3D255) at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/sshd.c:2545
> #26 0x0000000000428f83 in mm_request_receive (sock=3D<value optimized out=
>,=20
> m=3D<value optimized out>)
> at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/monitor_wrap.c:153
> #27 0x0000000000427e26 in monitor_read (pmonitor=3D0x804022220,=20
> ent=3D0x6465a0, pent=3D0x7fffffffd0c0)
> at /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/monitor.c:593
> #28 0x0000000000427b49 in monitor_child_preauth (_authctxt=3D<value=20
> optimized out>, pmonitor=3D0x804022220)
> at /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/monitor.c:387
> #29 0x000000000040fd15 in main (ac=3D<value optimized out>, av=3D<value=
=20
> optimized out>) at=20
> /usr/src/secure/usr.sbin/sshd/../../../crypto/openssh/sshd.c:679
Ok, so the patch sort of worked, but your rtld does not have debugging
information for compiled .c files. Please, in the patched tree, do
the following:
cd libexec/rtld-elf
make clean
make DEBUG_FLAGS=3D-g DEBUG=3D-DDEBUG
make install
and then re-do the backtracing.
--KQtzXpABaZjuvfJ9
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (FreeBSD)
iQIcBAEBAgAGBQJTRGjGAAoJEJDCuSvBvK1BOuAQAJRg17vxmNhZalUk2fS0AEoG
ElU7P/gzTeS3Y3NQ/vDm7PHSkSJ4H+3MvisyR3s/1OPoO7NGxhZ8rIKBh7sfmTUh
soy+RlY3pawhlwVO6/+VMk2AUPUe75PIyDPyY4A4T+8aqDm9kxcDKtszwGbYW0vY
RpZEHcm77sn5CC64uZV9ppcuis/uKtZi/VWN69Uvt9UzWXA8MsxQYXXBUg3FCs/o
cIua0+3nrhmSkYz/euD8hyyUUoCNefErtC3NMptBHtQ22InKpFvLoZEL+d77UG9x
cDunUAm4LUaTJzzvzcwtxw/bTTplnYzOXqCPLFUouSw4HcNZhPkrJAPDjkMApHMn
27uM6ONvP9ZXitAGJ8o7O1OqFoK/8cURaq7+JmTmpgi2ZOvTDl+ga7vGVPUa/vDb
WbHzKg5v/JS3B6IhbNmhPI07VK0OsMQPDYVaDeEBvvEniegzj9kTa2W0vkNVIqHy
RyW53DiYPTk9PdW093IqVmW36xJEfCk8NaCse0D7p8GwdBnYRBlrgJGZwgJEgG0n
Sm0Ri27g1PLI/W5wW+E08OtMWjgHNtroDua2DAH0OTDItJW5NhQLIvpBFz7mD0Ij
ARFd3Ld67XQtH3RYAfMwNkEfgv8Hzufvzr87FQx5mdZHiAyOURJQcdPfdk5X7r+B
I9/MhdVcosf+cHOZu/um
=Hsia
-----END PGP SIGNATURE-----
--KQtzXpABaZjuvfJ9--
討論串 (同標題文章)
完整討論串 (本文為第 27 之 50 篇):