On Fri, Jun 12, 2015 at 12:03:16PM +0200, Andre Meiser
wrote:> Hi,
>
> On Wed, Jun 03, 2015 at 16:58 +0200, Konstantin Belousov wrote:
> > You should recompile both libc and libthr with debugging symbols, like
> > cd /usr/src
> > (cd lib/libc && make all install DEBUG_FLAGS=-g)
> > (cd lib/libthr && make all install DEBUG_FLAGS=-g)
> > then obtain the core dump and post backtraces.
>
> still no new core dump from Xorg, but one from vim.
> As far as I recall, vim used to crash at pthread_getspecific, too, but this
time it was different:
>
> Core was generated by `vim'.
> Program terminated with signal 11, Segmentation fault.
> Reading symbols from /lib/libm.so.5...(no debugging symbols found)...done.
> Loaded symbols for /lib/libm.so.5
> Reading symbols from /lib/libncurses.so.8...(no debugging symbols
found)...done.
> Loaded symbols for /lib/libncurses.so.8
> Reading symbols from /usr/local/lib/libintl.so.8...(no debugging symbols
found)...done.
> Loaded symbols for /usr/local/lib/libintl.so.8
> Reading symbols from /usr/local/lib/libpython2.7.so.1...(no debugging
symbols found)...done.
> Loaded symbols for /usr/local/lib/libpython2.7.so.1
> Reading symbols from /lib/libthr.so.3...done.
> Loaded symbols for /lib/libthr.so.3
> Reading symbols from /lib/libc.so.7...done.
> Loaded symbols for /lib/libc.so.7
> Reading symbols from /lib/libutil.so.9...done.
> Loaded symbols for /lib/libutil.so.9
> Reading symbols from /libexec/ld-elf.so.1...done.
> Loaded symbols for /libexec/ld-elf.so.1
> #0 0x000000080149d6a2 in check_deferred_signal (curthread=0x802406400) at
/usr/src/lib/libthr/thread/thr_sig.c:331
> 331 getcontext(uc);
> [New Thread 802406400 (LWP 101373/vim)]
> Current language: auto; currently minimal
> (gdb) bt
> #0 0x000000080149d6a2 in check_deferred_signal (curthread=0x802406400) at
/usr/src/lib/libthr/thread/thr_sig.c:331
> #1 0x000000080149d5ed in _thr_ast (curthread=0x802406400) at
/usr/src/lib/libthr/thread/thr_sig.c:264
> #2 0x00000008014a23c7 in _thr_rtld_lock_release (lock=<value optimized
out>) at /usr/src/lib/libthr/thread/thr_rtld.c:162
> #3 0x000000080083c94d in _r_debug_postinit () from /libexec/ld-elf.so.1
> #4 0x000000080083a15d in .text () from /libexec/ld-elf.so.1
> #5 0x00000000004e3d83 in preserve_exit ()
> #6 0x000000000051e808 in mch_libcall ()
> #7 0x000000080149e47a in handle_signal (actp=<value optimized out>,
sig=<value optimized out>, info=<value optimized out>, ucp=<value
optimized out>) at /usr/src/lib/libthr/thread/thr_sig.c:240
> #8 0x000000080149e062 in thr_sighandler (sig=<value optimized out>,
info=<value optimized out>, _ucp=<value optimized out>) at
/usr/src/lib/libthr/thread/thr_sig.c:183
> #9 <signal handler called>
> #10 0x000000080149d6a2 in check_deferred_signal (curthread=0x802406400) at
/usr/src/lib/libthr/thread/thr_sig.c:331
> #11 0x000000080149d5ed in _thr_ast (curthread=0x802406400) at
/usr/src/lib/libthr/thread/thr_sig.c:264
> #12 0x00000008014a23c7 in _thr_rtld_lock_release (lock=<value optimized
out>) at /usr/src/lib/libthr/thread/thr_rtld.c:162
> #13 0x000000080083c94d in _r_debug_postinit () from /libexec/ld-elf.so.1
> #14 0x000000080083a15d in .text () from /libexec/ld-elf.so.1
> #15 0x000000080149e4e2 in handle_signal (actp=<value optimized out>,
sig=<value optimized out>, info=<value optimized out>, ucp=<value
optimized out>) at /usr/src/lib/libthr/thread/thr_sig.c:256
> #16 0x000000080149e062 in thr_sighandler (sig=<value optimized out>,
info=<value optimized out>, _ucp=<value optimized out>) at
/usr/src/lib/libthr/thread/thr_sig.c:183
> #17 <signal handler called>
> #18 0x00000008017f9b7a in select () from /lib/libc.so.7
> #19 0x000000080149bb32 in __select (numfds=1, readfds=0x7fffffffdfb0,
writefds=0x0, exceptfds=0x7fffffffdf30, timeout=0x0) at
/usr/src/lib/libthr/thread/thr_syscalls.c:561
> #20 0x000000000051a33b in mch_write ()
> #21 0x000000000051a5ac in mch_inchar ()
> #22 0x00000000005b7a17 in ui_inchar ()
> #23 0x00000000004ae86a in inchar ()
> #24 0x00000000004b1cdb in vgetc ()
> #25 0x00000000004b0bda in vgetc ()
> #26 0x00000000004b2499 in safe_vgetc ()
> #27 0x00000000004f560f in normal_cmd ()
> #28 0x00000000005df297 in main_loop ()
> #29 0x00000000005de908 in main ()
>
> It's still a thread problem, but I've no idea if it's related
with the former pthread_getspecific problem.
Show me the 'ldd vim' output and output from the
readelf -d vim | grep NEEDED.