After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 667108 - Crash when checking mail & expunging local inbox
Crash when checking mail & expunging local inbox
Status: RESOLVED OBSOLETE
Product: evolution
Classification: Applications
Component: Mailer
3.4.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[pop3]
Depends on:
Blocks:
 
 
Reported: 2012-01-01 22:07 UTC by André Klapper
Modified: 2015-04-29 12:45 UTC
See Also:
GNOME target: ---
GNOME version: 3.1/3.2



Description André Klapper 2012-01-01 22:07:09 UTC
Check for new mail.
Expunge your local inbox.
Click around a bit by choosing other folders.

RESULT:
Freeze.


$:andre\> gdb evolution 
GNU gdb (GDB) Fedora (7.3.50.20110722-10.fc16)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/evolution...Reading symbols from /usr/lib/debug/usr/bin/evolution.debug...done.
done.
(gdb) run
Starting program: /usr/bin/evolution 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
[New Thread 0xb7dadb40 (LWP 5126)]

** (evolution:5110): CRITICAL **: categories_icon_theme_hack: assertion `filename != NULL && *filename != '\0'' failed
[New Thread 0xb75acb40 (LWP 5127)]
[New Thread 0xb6bffb40 (LWP 5128)]
[New Thread 0xb1503b40 (LWP 5129)]
[New Thread 0xb0bffb40 (LWP 5130)]
[New Thread 0xb03feb40 (LWP 5131)]
[New Thread 0xaf7ffb40 (LWP 5132)]
[New Thread 0xaeffeb40 (LWP 5133)]
[New Thread 0xae7fdb40 (LWP 5134)]
[Thread 0xae7fdb40 (LWP 5134) exited]
[Thread 0xaf7ffb40 (LWP 5132) exited]
[Thread 0xb03feb40 (LWP 5131) exited]
[New Thread 0xb03feb40 (LWP 5135)]
[Thread 0xb03feb40 (LWP 5135) exited]
[New Thread 0xb03feb40 (LWP 5137)]
[New Thread 0xaf7ffb40 (LWP 5138)]
[Thread 0xaf7ffb40 (LWP 5138) exited]
[New Thread 0xaf7ffb40 (LWP 5139)]
[New Thread 0xae7fdb40 (LWP 5140)]
[New Thread 0xadffcb40 (LWP 5141)]
[New Thread 0xad7fbb40 (LWP 5142)]
[New Thread 0xacffab40 (LWP 5143)]
[New Thread 0xac7f9b40 (LWP 5144)]
[New Thread 0xabff8b40 (LWP 5145)]
[New Thread 0xab7f7b40 (LWP 5146)]
[New Thread 0xaaff6b40 (LWP 5147)]
[New Thread 0xaa7f5b40 (LWP 5148)]
[New Thread 0xa9ff4b40 (LWP 5149)]
[New Thread 0xa89ffb40 (LWP 5150)]
[New Thread 0xa81feb40 (LWP 5151)]
[New Thread 0xa79fdb40 (LWP 5152)]
[Thread 0xadffcb40 (LWP 5141) exited]
[New Thread 0xadffcb40 (LWP 5153)]
[Thread 0xaf7ffb40 (LWP 5139) exited]
[Thread 0xad7fbb40 (LWP 5142) exited]
[Thread 0xac7f9b40 (LWP 5144) exited]
[Thread 0xab7f7b40 (LWP 5146) exited]
[Thread 0xa89ffb40 (LWP 5150) exited]
[Thread 0xadffcb40 (LWP 5153) exited]
[New Thread 0xadffcb40 (LWP 5154)]
[Thread 0xadffcb40 (LWP 5154) exited]
[New Thread 0xadffcb40 (LWP 5155)]
[Thread 0xa79fdb40 (LWP 5152) exited]
[New Thread 0xa79fdb40 (LWP 5156)]
[Thread 0xa79fdb40 (LWP 5156) exited]
[Thread 0xaaff6b40 (LWP 5147) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb0bffb40 (LWP 5130)]
camel_pop3_engine_command_free (pe=0x0, pc=0xb0cebc90)
    at camel-pop3-engine.c:423
423		if (pe->current != pc)
(gdb) thread apply all bt

Thread 2 (Thread 0xb7dadb40 (LWP 5126))

  • #0 __kernel_vsyscall
  • #1 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #2 read
    at /usr/include/bits/unistd.h line 45
  • #3 unix_signal_helper_thread
    at gmain.c line 4551
  • #4 g_thread_create_proxy
    at gthread.c line 1962
  • #5 start_thread
    at pthread_create.c line 309
  • #6 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133
418	
419	void
420	camel_pop3_engine_command_free (CamelPOP3Engine *pe,
421	                                CamelPOP3Command *pc)
422	{
423		if (pe->current != pc)
424			camel_dlist_remove ((CamelDListNode *) pc);
425		g_free (pc->data);
426		g_free (pc);
427	}
(gdb) info registers
eax            0x0	0
ecx            0xb0c00020	-1329594336
edx            0xb0cebc90	-1328628592
ebx            0x99cff4	10080244
esp            0xb0bfee00	0xb0bfee00
ebp            0x9014688	0x9014688
esi            0xb0cebc90	-1328628592
edi            0x9027690	151156368
eip            0x994c1f	0x994c1f <camel_pop3_engine_command_free+31>
eflags         0x210212	[ AF IF RF ID ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
(gdb)
Comment 1 Matthew Barnes 2012-01-01 22:43:28 UTC
Thread 1 is running fsync().  If you're using ext3 then I bet it's not really an Evolution freeze, your machine is just busy sync'ing the entire filesystem.
Comment 2 André Klapper 2012-01-02 10:22:17 UTC
Yeah, ext3 here. That explains a few hangs, I guess.
Comment 3 André Klapper 2012-01-11 15:13:33 UTC
(gdb) thread apply all bt

Thread 21 (Thread 0xb7636b40 (LWP 1931))

  • #0 __kernel_vsyscall
  • #1 read
    at ../sysdeps/unix/syscall-template.S line 82
  • #2 read
    at /usr/include/bits/unistd.h line 45
  • #3 unix_signal_helper_thread
    at gmain.c line 4551
  • #4 g_thread_create_proxy
    at gthread.c line 1962
  • #5 start_thread
    at pthread_create.c line 309
  • #6 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 133

Thread 1 (Thread 0xb78528c0 (LWP 1927))

  • #0 __kernel_vsyscall
  • #1 pthread_once
    at ../nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S line 98
  • #2 __GI___backtrace
    at ../sysdeps/i386/backtrace.c line 121
  • #3 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 178
  • #4 malloc_printerr
    at malloc.c line 5021
  • #5 _int_malloc
    at malloc.c line 3564
  • #6 __GI___libc_malloc
    at malloc.c line 2928
  • #7 _dl_map_object_deps
    at dl-deps.c line 506
  • #8 dl_open_worker
    at dl-open.c line 262
  • #9 _dl_catch_error
    at dl-error.c line 178
  • #10 _dl_open
    at dl-open.c line 575
  • #11 do_dlopen
    at dl-libc.c line 89
  • #12 _dl_catch_error
    at dl-error.c line 178
  • #13 dlerror_run
    at dl-libc.c line 48
  • #14 __GI___libc_dlopen_mode
    at dl-libc.c line 165
  • #15 init
    at ../sysdeps/i386/backtrace.c line 44
  • #16 pthread_once
    at ../nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S line 122
  • #17 __GI___backtrace
    at ../sysdeps/i386/backtrace.c line 121
  • #18 __libc_message
    at ../sysdeps/unix/sysv/linux/libc_fatal.c line 178
  • #19 malloc_printerr
    at malloc.c line 5021
  • #20 _int_malloc
    at malloc.c line 3564
  • #21 __libc_calloc
    at malloc.c line 3278
  • #22 standard_calloc
    at gmem.c line 107
  • #23 g_malloc0
    at gmem.c line 196
  • #24 create_gnode
  • #25 insert_children
    at e-tree-table-adapter.c line 375
  • #26 generate_tree
    at e-tree-table-adapter.c line 405
  • #27 update_node
    at e-tree-table-adapter.c line 520
  • #28 etta_proxy_node_changed
    at e-tree-table-adapter.c line 836
  • #29 g_cclosure_marshal_VOID__POINTER
    at gmarshal.c line 609
  • #30 g_closure_invoke
    at gclosure.c line 774
  • #31 signal_emit_unlocked_R
    at gsignal.c line 3272
  • #32 g_signal_emit_valist
    at gsignal.c line 3003
  • #33 g_signal_emit
    at gsignal.c line 3060
  • #34 e_tree_model_node_changed
    at e-tree-model.c line 293
  • #35 e_tree_memory_thaw
    at e-tree-memory.c line 211
  • #36 build_flat
    at message-list.c line 3675
  • #37 regen_list_done
    at message-list.c line 4878
  • #38 regen_list_done
    at message-list.c line 4812
  • #39 mail_msg_idle_cb
    at mail-mt.c line 389
  • #40 g_idle_dispatch
    at gmain.c line 4785
  • #41 g_main_dispatch
    at gmain.c line 2425
  • #42 g_main_context_dispatch
    at gmain.c line 2995
  • #43 g_main_context_iterate
    at gmain.c line 3073
  • #44 g_main_loop_run
    at gmain.c line 3281
  • #45 gtk_main
    at gtkmain.c line 1362
  • #46 main
    at main.c line 696

(gdb) info registers
eax            0xfffffe00	-512
ecx            0x80	128
edx            0x1	1
ebx            0x464c3e1c	1179401756
esp            0xbfa28d84	0xbfa28d84
ebp            0xbfa28df8	0xbfa28df8
esi            0x0	0
edi            0xbfa29370	-1079864464
eip            0x12d424	0x12d424 <__kernel_vsyscall+16>
eflags         0x200246	[ PF ZF IF ID ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51

(gdb) list
427	
428		g_object_unref (client);
429	
430		return shell;
431	}
432	
433	gint
434	main (gint argc,
435	      gchar **argv)
436	{
Comment 4 Matthew Barnes 2012-01-11 15:29:21 UTC
Not sure what to make of that one.  Almost every thread is allocating or deallocating memory simultaneously, so I can't tell which one is actually crashing.  Looks like some sort of memory corruption.  A valgrind log would be more helpful than a backtrace in this case, if you're willing to endure trying to reproduce this under valgrind.
Comment 5 Milan Crha 2013-01-09 10:41:23 UTC
The initial issue is not freeze, but a crash. Let's use this bug report for this, because I just got a similar downstream bug report from 3.4.4:
https://bugzilla.redhat.com/show_bug.cgi?id=893290

Description of problem:
I was checking my email then I emptied the trash, it did the deletion process. @ 99% of the explunge it evolution crashed. It is configured to delete the emails from POP server when explunge is done but it never works always crashes.

Version-Release number of selected component:
evolution-3.4.4-2.fc17

Additional info:
libreport version: 2.0.18
abrt_version:   2.0.18
backtrace_rating: 4
cmdline:        evolution
crash_function: strlen
kernel:         3.6.11-1.fc17.x86_64

Thread 7 (Thread 0x7f95e1569700 (LWP 10803))

  • #0 fsync
    at ../sysdeps/unix/syscall-template.S line 82
  • #1 camel_uid_cache_save
    at camel-uid-cache.c line 168
  • #2 fetch_mail_exec
    at mail-ops.c line 336
  • #3 mail_msg_proxy
    at mail-mt.c line 423
  • #4 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #5 g_thread_proxy
    at gthread.c line 801
  • #6 start_thread
    at pthread_create.c line 309
  • #7 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Thread 1 (Thread 0x7f95e39d7700 (LWP 10796))

  • #0 __strlen_sse2
    at ../sysdeps/x86_64/strlen.S line 43
  • #1 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 348
  • #2 camel_pop3_engine_iterate
    at camel-pop3-engine.c line 294
  • #3 camel_pop3_store_expunge
    at camel-pop3-store.c line 812
  • #4 pop3_folder_synchronize_sync
    at camel-pop3-folder.c line 885
  • #5 camel_folder_synchronize_sync
    at camel-folder.c line 4033
  • #6 expunge_pop3_stores
    at mail-ops.c line 1494
  • #7 expunge_folder_exec
    at mail-ops.c line 1564
  • #8 mail_msg_proxy
    at mail-mt.c line 423
  • #9 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #10 g_thread_proxy
    at gthread.c line 801
  • #11 start_thread
    at pthread_create.c line 309
  • #12 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Comment 6 Milan Crha 2015-04-29 12:45:26 UTC
There was no duplicate for this for a long time, thus I'm closing this, but not only due to that, also because I made more POP3 fixes, touching this area too, for 3.16.2 of evolution-data-server. Feel free to reopen with an updated backtrace, and eventually steps, if you see the crash with 3.16.2+.