|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
[Annoyance] Thread still present after leaving balsaHi,
When I leave balsa (File > Quit), there is always a thread present. I need to kill it manually to be able to start balsa again. When I launch balsa in gdb, I get: ----->8----->8----->8----->8----->8------ ... .... Thread 0x7fffdaffd950 (LWP 10579) exited] [New Thread 0x7fffdaffd950 (LWP 10580)] [Thread 0x7fffdaffd950 (LWP 10580) exited] Mail check thread cancelled. I know it is rough. ----->8----->8----->8----->8----->8------ If I attached the running process to strace, I get this: [jean-luc@tangerine] % strace -fp 14529 Process 14537 attached with 2 threads - interrupt to quit [pid 14537] futex(0x1d79150, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...> [pid 14529] futex(0x1d79150, FUTEX_WAIT_PRIVATE, 2, NULL And it stays endless in this state. I use lateste git version, built with the following configure options and X86_64 architecture: --enable-smime \ --with-compface \ --with-gpgme \ --with-gss \ --with-gtkspell \ --with-ldap \ --with-sqlite \ --with-ssl \ --with-gtksourceview=2 \ --enable-extra-mimeicons \ --with-libnotify \ --with-rubrica \ --enable-threads \ --with-unique \ --with-webkit Regards Jean-Luc _______________________________________________ balsa-list mailing list balsa-list@... http://mail.gnome.org/mailman/listinfo/balsa-list |
|
|
Re: [Annoyance] Thread still present after leaving balsaOn 07/31/2009 10:58:08 AM, Jean-Luc Coulon (f5ibh) wrote:
> Hi, > > When I leave balsa (File > Quit), there is always a thread present. > I need to kill it manually to be able to start balsa again. > > When I launch balsa in gdb, I get: > > > ----->8----->8----->8----->8----->8------ > ... > .... > Thread 0x7fffdaffd950 (LWP 10579) exited] > [New Thread 0x7fffdaffd950 (LWP 10580)] > [Thread 0x7fffdaffd950 (LWP 10580) exited] > Mail check thread cancelled. I know it is rough. > Can you please press Ctrl-C and then type at gdb prompt: thread apply all where This will help us find out which thread lingers... Pawel _______________________________________________ balsa-list mailing list balsa-list@... http://mail.gnome.org/mailman/listinfo/balsa-list |
|
|
Re: [Annoyance] Thread still present after leaving balsaHi Pawel,
>Can you please press Ctrl-C and then type at gdb prompt: > >thread apply all where > >This will help us find out which thread lingers... I got a segfault and then the previous message. I've what you asked and you can find attached the gdb report. Regards Jean-Luc Program received signal SIGSEGV, Segmentation fault. 0x00007fffee986ad0 in ?? () from /lib/libc.so.6 (gdb) bt #0 0x00007fffee986ad0 in ?? () from /lib/libc.so.6 #1 0x00007fffee988da8 in malloc () from /lib/libc.so.6 #2 0x00007fffe823df7c in ?? () from /usr/lib/libxcb.so.1 #3 0x00007fffe823c9a9 in ?? () from /usr/lib/libxcb.so.1 #4 0x00007fffe823e91c in xcb_wait_for_reply () from /usr/lib/libxcb.so.1 #5 0x00007fffee4235c4 in _XReply () from /usr/lib/libX11.so.6 #6 0x00007fffee417a03 in XSync () from /usr/lib/libX11.so.6 #7 0x00007ffff115d96e in gdk_flush () from /usr/lib/libgdk-x11-2.0.so.0 #8 0x00007ffff14e3bad in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #9 0x000000000045bf05 in main (argc=<value optimized out>, argv=0x7fffffffe498) at main.c:1149 (gdb) ------->8--------------->8--------------->8---------------->8--------------- Thread 0x7fffdbfff950 (LWP 28686) exited] Mail check thread cancelled. I know it is rough. Program received signal SIGSEGV, Segmentation fault. 0x00007fffee9847dc in ?? () from /lib/libc.so.6 (gdb) thread apply all where Thread 2 (Thread 0x7fffe1b67950 (LWP 28674)): #0 0x00007fffee9d6d36 in poll () from /lib/libc.so.6 #1 0x00000000004de914 in bnio_poll (sio=0x7fffdc001860, want_read=<value optimized out>, want_write=<value optimized out>, fast=0) at siobuf.c:301 #2 0x00000000004deb0a in raw_read (sio=0x7fffdc001860) at siobuf.c:522 #3 bnio_fill (sio=0x7fffdc001860) at siobuf.c:560 #4 0x00000000004dee26 in bnio_read (sio=0x7fffe1b66db0, bufp=<value optimized out>, buflen=60000) at siobuf.c:592 #5 0x00000000004dee53 in bnio_getc (sio=0x7fffe1b66db0) at siobuf.c:618 #6 0x00000000004d6331 in imap_cmd_get_tag (handle=0xbec000, lastcmd=7) at imap-handle.c:885 #7 imap_cmd_step (handle=0xbec000, lastcmd=7) at imap-handle.c:2002 #8 0x00000000004d6c8c in imap_cmd_exec_cmdno (handle=0xbec000, cmd=0x7fffdc081c70 "LIST \"Trash\" \"%\"", ret_cmdno=0x0) at imap-handle.c:2087 #9 0x00000000004d16d9 in imap_mbox_list (handle=0xbec000, what=<value optimized out>) at imap-commands.c:326 #10 0x00000000004abc77 in lbm_imap_check (mailbox=0x8e67e0) at mailbox_imap.c:1246 #11 libbalsa_mailbox_imap_check (mailbox=0x8e67e0) at mailbox_imap.c:1262 #12 0x00000000004a3d9e in libbalsa_mailbox_check (mailbox=0x8e67e0) ---Type <return> to continue, or q <return> to quit--- at mailbox.c:719 #13 0x000000000045695f in bw_mailbox_check (mailbox=0x8e67e0) at main-window.c:2951 #14 0x00007fffef32ea4d in g_slist_foreach () from /usr/lib/libglib-2.0.so.0 #15 0x0000000000456787 in bw_check_messages_thread (list=0xbb63a0) at main-window.c:2969 #16 0x00007ffff3d1df9a in start_thread () from /lib/libpthread.so.0 #17 0x00007fffee9df56d in clone () from /lib/libc.so.6 #18 0x0000000000000000 in ?? () Thread 1 (Thread 0x7ffff7e987f0 (LWP 28666)): #0 0x00007fffee9847dc in ?? () from /lib/libc.so.6 #1 0x00007fffee9870ee in ?? () from /lib/libc.so.6 #2 0x00007fffee988da8 in malloc () from /lib/libc.so.6 #3 0x00007fffef31848e in g_realloc () from /usr/lib/libglib-2.0.so.0 #4 0x00007fffef332464 in ?? () from /usr/lib/libglib-2.0.so.0 #5 0x00007fffef3335ea in g_string_sized_new () from /usr/lib/libglib-2.0.so.0 #6 0x00007fffef308665 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0x00007fffef309fd9 in ?? () from /usr/lib/libglib-2.0.so.0 #8 0x00007fffef30a178 in g_key_file_set_comment () from /usr/lib/libglib-2.0.so.0 #9 0x000000000049ae97 in lbc_sync (conf=0x7262a0) at libbalsa-conf.c:485 #10 0x000000000049af33 in libbalsa_conf_sync () at libbalsa-conf.c:522 ---Type <return> to continue, or q <return> to quit--- #11 0x00007fffef30da9d in g_list_foreach () from /usr/lib/libglib-2.0.so.0 #12 0x0000000000467307 in config_address_books_save () at save-restore.c:1581 #13 config_save () at save-restore.c:1183 #14 0x000000000042b00e in balsa_app_destroy () at balsa-app.c:445 #15 0x000000000045bf4f in balsa_cleanup (argc=<value optimized out>, argv=0x7fffffffe498) at main.c:1203 #16 main (argc=<value optimized out>, argv=0x7fffffffe498) at main.c:1152 (gdb) _______________________________________________ balsa-list mailing list balsa-list@... http://mail.gnome.org/mailman/listinfo/balsa-list |
|
|
Re: [Annoyance] Thread still present after leaving balsaOn 07/31/2009 07:03:23 PM, Jean-Luc Coulon (f5ibh) wrote:
> [cut] ------quoted attachment "balsa-gdb-session"------ > > > Program received signal SIGSEGV, Segmentation fault. > 0x00007fffee986ad0 in ?? () from /lib/libc.so.6 > (gdb) bt > #0 0x00007fffee986ad0 in ?? () from /lib/libc.so.6 > #1 0x00007fffee988da8 in malloc () from /lib/libc.so.6 > #2 0x00007fffe823df7c in ?? () from /usr/lib/libxcb.so.1 > #3 0x00007fffe823c9a9 in ?? () from /usr/lib/libxcb.so.1 > #4 0x00007fffe823e91c in xcb_wait_for_reply () from > /usr/lib/libxcb.so.1 > #5 0x00007fffee4235c4 in _XReply () from /usr/lib/libX11.so.6 > #6 0x00007fffee417a03 in XSync () from /usr/lib/libX11.so.6 > #7 0x00007ffff115d96e in gdk_flush () from > /usr/lib/libgdk-x11-2.0.so.0 > #8 0x00007ffff14e3bad in gtk_main () from > /usr/lib/libgtk-x11-2.0.so.0 This is the (in)fameous xcb deadlock problem - or can it be a heap corruption? One way to find out is to run either: env MALLOC_CHECK_=2 balsa or using valgrind. > Thread 2 (Thread 0x7fffe1b67950 (LWP 28674)): > #0 0x00007fffee9d6d36 in poll () from /lib/libc.so.6 > #1 0x00000000004de914 in bnio_poll (sio=0x7fffdc001860, > want_read=<value optimized out>, want_write=<value optimized > out>, fast=0) > at siobuf.c:301 > #2 0x00000000004deb0a in raw_read (sio=0x7fffdc001860) at > siobuf.c:522 > #3 bnio_fill (sio=0x7fffdc001860) at siobuf.c:560 > #4 0x00000000004dee26 in bnio_read (sio=0x7fffe1b66db0, > bufp=<value optimized out>, buflen=60000) at siobuf.c:592 > #5 0x00000000004dee53 in bnio_getc (sio=0x7fffe1b66db0) at > siobuf.c:618 > #6 0x00000000004d6331 in imap_cmd_get_tag (handle=0xbec000, > lastcmd=7) > at imap-handle.c:885 > #7 imap_cmd_step (handle=0xbec000, lastcmd=7) at imap-handle.c:2002 > #8 0x00000000004d6c8c in imap_cmd_exec_cmdno (handle=0xbec000, > cmd=0x7fffdc081c70 "LIST \"Trash\" \"%\"", ret_cmdno=0x0) > at imap-handle.c:2087 > #9 0x00000000004d16d9 in imap_mbox_list (handle=0xbec000, > what=<value optimized out>) at imap-commands.c:326 I have recently added a thread lock protecting LIST execution - this is meant specifically to prevent protocol errors in LIST. Are you running with or without that change? > > Thread 1 (Thread 0x7ffff7e987f0 (LWP 28666)): > #0 0x00007fffee9847dc in ?? () from /lib/libc.so.6 > #1 0x00007fffee9870ee in ?? () from /lib/libc.so.6 > #2 0x00007fffee988da8 in malloc () from /lib/libc.so.6 > #3 0x00007fffef31848e in g_realloc () from /usr/lib/libglib-2.0.so.0 > #4 0x00007fffef332464 in ?? () from /usr/lib/libglib-2.0.so.0 > #5 0x00007fffef3335ea in g_string_sized_new () from > /usr/lib/libglib-2.0.so.0 > #6 0x00007fffef308665 in ?? () from /usr/lib/libglib-2.0.so.0 > #7 0x00007fffef309fd9 in ?? () from /usr/lib/libglib-2.0.so.0 > #8 0x00007fffef30a178 in g_key_file_set_comment () > from /usr/lib/libglib-2.0.so.0 > #9 0x000000000049ae97 in lbc_sync (conf=0x7262a0) at > libbalsa-conf.c:485 > #10 0x000000000049af33 in libbalsa_conf_sync () at libbalsa-conf.c:522 > ---Type <return> to continue, or q <return> to quit--- > #11 0x00007fffef30da9d in g_list_foreach () from > /usr/lib/libglib-2.0.so.0 > #12 0x0000000000467307 in config_address_books_save () at > save-restore.c:1581 > #13 config_save () at save-restore.c:1183 > #14 0x000000000042b00e in balsa_app_destroy () at balsa-app.c:445 > #15 0x000000000045bf4f in balsa_cleanup (argc=<value optimized out>, > argv=0x7fffffffe498) at main.c:1203 > #16 main (argc=<value optimized out>, argv=0x7fffffffe498) at > main.c:1152 > (gdb) I have never seen a trace like this. The fact that malloc is involved makes me think it may be thread corruption after all... Pawel _______________________________________________ balsa-list mailing list balsa-list@... http://mail.gnome.org/mailman/listinfo/balsa-list |
|
|
|
|
|
Re: [Annoyance] Thread still present after leaving balsaOn 08/01/2009 01:03:25 PM Sat, Pawel Salek wrote:
[ snip ] > This is the (in)fameous xcb deadlock problem - or can it be a heap > corruption? One way to find out is to run either: > > env MALLOC_CHECK_=2 balsa > or using valgrind. I've been seeing these too. Running with MALLOC_CHECK_=2 reveals no errors before the segv, so it doesn't appear to be misuse of the heap. The segv is typically in code like: (gdb) l 4306 malloc_consolidate(av); 4307 else { 4308 bck = victim->bk; 4309 set_inuse_bit_at_offset(victim, nb); 4310 bin->bk = bck; 4311 bck->fd = bin; 4312 4313 if (av != &main_arena) 4314 victim->size |= NON_MAIN_ARENA; 4315 check_malloced_chunk(av, victim, nb); and in line 4311, bck is NULL. So victim is corrupt, which looks like a glibc bug. But...running with valgrind always quits shortly after the main window is displayed, with Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting. Comments on a bug (can't find it today!) suggested exporting CANBERRA_SERVER=NULL, which does indeed allow valgrind balsa to run, but also revealing no memory allocation issues. After exporting that, however, I can no longer reproduce the segv! That suggests that something in the sound stack may be corrupting the heap, in some way that's not detected by MALLOC_CHECK_. Anyway, for me, so far, that's providing a work-around. Best, Peter _______________________________________________ balsa-list mailing list balsa-list@... http://mail.gnome.org/mailman/listinfo/balsa-list |
| Free embeddable forum powered by Nabble | Forum Help |