segfault in g_type_check_instance_is_a () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Hi developers,
As a developer of claws-mail I have been struggling with a mysterious segfault which caused claws-mail to crash. A backtrace from gdb when the segfaults occurs is as follows:
Thread 1 "claws-mail" received signal SIGSEGV, Segmentation fault.
0x00007ffff6c3e01c in g_type_check_instance_is_a ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
(gdb) thread apply all bt
Thread 4 (Thread 0x7fffedde2700 (LWP 4885)):
#0 0x00007ffff766b00c in futex_wait_cancelable
(private=0, expected=0, futex_word=0xa631e0)
at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007ffff766b00c in __pthread_cond_wait_common
(abstime=0x0, mutex=0xa63190, cond=0xa631b8) at pthread_cond_wait.c:502
#2 0x00007ffff766b00c in __pthread_cond_wait (cond=0xa631b8, mutex=0xa63190)
at pthread_cond_wait.c:655
#3 0x00007ffff67a882b in mailsem_internal_wait ()
at /usr/lib/x86_64-linux-gnu/libetpan.so.20
#4 0x00000000005ccbf1 in thread_run (data=0xa52090)
at etpan-thread-manager.c:320
#5 0x00007ffff7664fa3 in start_thread (arg=<optimized out>)
at pthread_create.c:486
#6 0x00007ffff60504cf in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7fffee700700 (LWP 4863)):
#0 0x00007ffff6045819 in __GI___poll (fds=0xf406d0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff6b38136 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff6b384c2 in g_main_loop_run ()
at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff6d8a0d6 in () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4 0x00007ffff6b60415 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff7664fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007ffff60504cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7fffeef01700 (LWP 4862)):
#0 0x00007ffff6045819 in __GI___poll (fds=0xf37010, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff6b38136 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff6b3825c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff6b382a1 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff6b60415 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff7664fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6 0x00007ffff60504cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7ffff1826e00 (LWP 4824)):
#0 0x00007ffff6c3e01c in g_type_check_instance_is_a () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1 0x00007ffff7d70566 in gtk_widget_show () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#2 0x00007ffff7bad610 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#3 0x00007ffff7ba50d5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#4 0x00007ffff7ba50d5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#5 0x00007ffff7ba50d5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#6 0x00007ffff7c7e500 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#7 0x00007ffff7ba50d5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#8 0x00007ffff7ba50d5 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#9 0x00007ffff7bad1bd in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#10 0x00007ffff6c19c8d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff6c2d365 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff6c362be in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff6c3697f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff6c1e364 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff6c20801 in g_object_notify () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff7cbef55 in () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#17 0x00007ffff7c5292d in gtk_main_do_event () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x00007ffff7ac5bac in () at /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#19 0x00007ffff6b37f2e in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff6b381c8 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff6b384c2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff7c518e7 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#23 0x00000000004461b4 in main (argc=<optimized out>, argv=<optimized out>) at main.c:1640
I can provided a complete log from valgrind when the segfaults occurs but since this log file is 111 MB big I will only send it on request.
Command used when running valgrind:
$ G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind \
--tool=memcheck --error-limit=no --leak-check=full \
--show-reachable=yes claws-mail 2>&1 | tee valgrind.log
Edited by Philip Withnall