GNOME Bugzilla – Bug 680467
Crash under camel_folder_search_search()
Last modified: 2013-09-14 16:55:35 UTC
I was deleting marking as spam and reading e-mail in the git/master: Here's the backtrace:
+ Trace 230561
Thread 22 (Thread 0x97431b70 (LWP 17073))
Thread 21 (Thread 0x99680b70 (LWP 17072))
Thread 20 (Thread 0x96c31b70 (LWP 17074))
Thread 19 (Thread 0xa4bffb70 (LWP 17070))
Thread 18 (Thread 0xa65ffb70 (LWP 17069))
Thread 17 (Thread 0xa28f5b70 (LWP 17071))
Thread 16 (Thread 0x99e80b70 (LWP 17067))
Thread 15 (Thread 0x9a680b70 (LWP 17068))
Thread 13 (Thread 0xa0affb70 (LWP 17066))
Thread 12 (Thread 0x9faffb70 (LWP 17051))
Thread 1 (Thread 0x98680b70 (LWP 17077))
Here's some console output: (evolution:16792): e-table-WARNING **: Icon 'mail-unread' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-read' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-replied' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-forward' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-attachment' not present in theme (evolution:16792): e-table-WARNING **: Icon 'emblem-important' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-attachment' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-attachment' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-unread' not present in theme (evolution:16792): e-table-WARNING **: Icon 'emblem-important' not present in theme (evolution:16792): e-table-WARNING **: Icon 'mail-attachment' not present in theme (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-menu-tool-button.c-CRITICAL **: menu_tool_button_clone_image: assertion `image_type == GTK_IMAGE_ICON_NAME' failed (evolution:16792): Gtk-CRITICAL **: gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed (evolution:16792): e-menu-tool-button.c-CRITICAL **: menu_tool_button_clone_image: assertion `image_type == GTK_IMAGE_ICON_NAME' failed (evolution:16792): Gtk-CRITICAL **: gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but visible=0 child_visible=1 parent GtkBox 0x9f004c80 mapped=1 (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but visible=0 child_visible=1 parent GtkBox 0x9f004c80 mapped=1 (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab3b28 is mapped but visible=0 child_visible=1 parent GtkBox 0x9f004c80 mapped=1 (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but visible=0 child_visible=1 parent GtkBox 0xa3178f0 mapped=1 (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but visible=0 child_visible=1 parent GtkBox 0xa3178f0 mapped=1 (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but not visible (evolution:16792): Gtk-WARNING **: EAttachmentBar 0x8ab38d0 is mapped but visible=0 child_visible=1 parent GtkBox 0xa3178f0 mapped=1 (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_compute_height: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed (evolution:16792): e-table-CRITICAL **: e_table_header_draw_button: assertion `ecol->pixbuf != NULL' failed Segmentation fault (core dumped)
Is this the machine you run 3.4.x core components, or those 3.5.x?
Created attachment 219518 [details] Screenshot showing weird message format Here's a screenshot showing a broken message. The real message is several lines long.
I'm afraid your 3.5.4 stack is too much cutting edge, not all projects were ported to eds changes, missing icons and that scary list of runtime warnings... I hope 3.5.90 will be better here.
(oops, this particular crash may be unrelated to 3.5.4 stack, though)
Hmm, I do not understand this crash. The backtrace shows crash point under: g_hash_table_destroy (hash_table=0xffffffff) the hash_table is obviously wrong, but I do not see how that can happen. All the searching in the backtrace happens on one folder, it's very busy now, but all the access to CamelFolderSearch structure is guarded with a lock. Furthermore, the hash table to be destroyed is a private member of the CamelFolderSearch, which cannot be accessed from the outside, and it's always either NULL or a valid pointer. Well, obviously not always, when it's crashing for you :(
*** Bug 680610 has been marked as a duplicate of this bug. ***
Regarding icons, I have some at: /usr/share/icons/gnome/16x16/status/gtk-missing-image.png there is also mail-unread.png, mail-read.png and the others you have shown in critical warnings in comment #0.
I have them too: /opt/gnome/share/icons/gnome/16x16/status -rw-r--r-- 1 ronis ronis 648 Jul 25 10:33 mail-attachment.png -rw-r--r-- 1 ronis ronis 621 Jul 25 10:33 mail-read.png -rw-r--r-- 1 ronis ronis 819 Jul 25 10:33 mail-replied.png -rw-r--r-- 1 ronis ronis 637 Jul 25 10:33 mail-signed.png -rw-r--r-- 1 ronis ronis 823 Jul 25 10:33 mail-signed-verified.png -rw-r--r-- 1 ronis ronis 773 Jul 25 10:33 mail-unread.png
Maybe the gtk-icon-theme doesn't know about that folder, then failing when searching for the icon. I see the default search paths for icons are: g_get_home_dir() /.icons g_get_user_data_dir() /icons xdg_data_dirs[j] /icons xdg_data_dirs[j] /pixmaps maybe add /opt/gnome/share/ to your XDG_DATA_DIR environment variable?
Downstream bug report about the same from 3.5.5: https://bugzilla.redhat.com/show_bug.cgi?id=848187
+ Trace 230674
Thread 1 (Thread 0x7f88cb26d700 (LWP 7047))
I've hit 848187 at least twice since upgrading to f18 yesterday, note.
Hrm, you are lucky. I cannot reproduce this under valgrind, I left evolution running for some time, and even it received updates on the Inbox it didn't show up this issue.
I haven't seen the crash since fixing the 'only display subscribed folders' thing, though that doesn't _prove_ it's gone away I guess. It's still behaving oddly in other ways, though.
*** Bug 681615 has been marked as a duplicate of this bug. ***
*** Bug 682281 has been marked as a duplicate of this bug. ***
From the above duplicate: I was browsing my e-mail with this morning's git/master of evo and related programs. I was deleting, individually, about 8 consecutive e-mails, basically, rapid-fire clicks on the delete button
Hrm, I deleted half of my local folder and no luck, evolution didn't crash. I think this has something to do with search folders, those which are reading your Inbox (the bug #682281 was about deletion in On This Computer/Inbox). I didn't use exactly the Inbox folder, but I guess it doesn't matter that much. Maybe if one of you could share your ~/.config/evolution/mail/vfolders.xml with me (feel free to send it privately, just name the bug number in the message subject), then I can try to tweak it here and test with it.
Thanks for the vfolders.xml, David, it helped me to reproduce the issue here.
Created attachment 221974 [details] [review] eds patch for evolution-data-server; Such a stupid mistake I did. I added code to not do searching when the search was cancelled. It makes sense, but I didn't realize that I'm skipping the whole function to the place which is using search->priv, but on a local variable, which wasn't initialized. The reproducibility was also tricky, it worked fine for me on the first shot, but when I made involved your Unread folder (unread with "includes threads"), then deleting messages which were used by the unread folder triggered the crash pretty easily.
Created commit 934a3cf in eds master (3.5.91+)