GNOME Bugzilla – Bug 618902
Crash when viewing/closing messages quickly
Last modified: 2011-01-28 10:00:30 UTC
In the inbox with a bunch of unread mail, follow these steps: 1) arrow to an unread message 2) hit return 3) when the window appears, hit Ctl+W to close it 4) hit the down arrow to select the next unread message 5) jump back to step 2 and repeat until you get a crash more often than not I'll get a crash. I don't recall whether the connection speed makes a difference (I just experienced this over a 2.5G cellphone connection, but I think I've seen it over wifi too) but it might. Relevant messages in ~/.xsession-errors are: (evolution:2382): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:2382): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:2382): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:2382): evolution-shell-CRITICAL **: e_shell_backend_get_shell: assertion `E_IS_SHELL_BACKEND (shell_backend)' failed (evolution:2382): evolution-shell-CRITICAL **: e_shell_get_shell_settings: assertion `E_IS_SHELL (shell)' failed I'll try to get a backtrace next time.
More relevant information: I don't use the preview pane, and I have messages set to be marked as read as fast as possible in preferences (ideally they'd just mark as read when I view them, but I seem to have to specify a timeout no matter what). I sometimes do this to mark messages as read without touching the trackpad/mouse.
Backtrace without debuginfo: Program received signal SIGSEGV, Segmentation fault. 0x00000030b8267330 in e_tree_node_is_expanded () from /usr/lib64/evolution/2.30/libetable.so.0 (gdb) bt
+ Trace 221952
Different crash now that debugging symbols are isntalled: Program received signal SIGSEGV, Segmentation fault. 0x00000030b9643925 in mail_reader_message_loaded_cb (folder=0x2eda990, message_uid=0x30288e0 "411758", message=0x2289300, user_data= 0x2829ae0, ex=0x302cee0) at e-mail-reader.c:1840 1840 cursor_uid = MESSAGE_LIST (message_list)->cursor_uid; (gdb) bt
+ Trace 221953
Evolution version: evolution-2.30.1-2.fc13.x86_64
message_list is NULL when mail_reader_message_loaded_cb() is called: Program received signal SIGSEGV, Segmentation fault. 0x00000030b9643925 in mail_reader_message_loaded_cb (folder=0x203a9a0, message_uid=0x21518c0 "411979", message=0x7f837000f9e0, user_data= 0x19afb00, ex=0x2140770) at e-mail-reader.c:1840 1840 cursor_uid = MESSAGE_LIST (message_list)->cursor_uid; (gdb) bt
+ Trace 221954
1835 1836 shell_backend = e_mail_reader_get_shell_backend (reader); 1837 shell = e_shell_backend_get_shell (shell_backend); 1838 shell_settings = e_shell_get_shell_settings (shell); 1839 1840 cursor_uid = MESSAGE_LIST (message_list)->cursor_uid; 1841 1842 /* If the user picked a different message in the time it took 1843 * to fetch this message, then don't bother rendering it. */ 1844 if (g_strcmp0 (cursor_uid, message_uid) != 0) (gdb) p message_list $1 = 0x0
I can't seem to reproduce the first crash; it may only happen when messages have not yet been downloaded for offline operation, which I have my folders set to do.
~/.xsession-errors for the two crashes above: (evolution:5603): e-data-server-DEBUG: Loading categories from "/home/dcbw/.evolution/categories.xml" (evolution:5603): e-data-server-DEBUG: Loaded 29 categories (evolution:5603): e-data-server-CRITICAL **: e_source_get_property: assertion `E_IS_SOURCE (source)' failed (evolution:5603): e-data-server-CRITICAL **: e_source_set_property: assertion `E_IS_SOURCE (source)' failed (evolution:5603): e-data-server-CRITICAL **: e_source_peek_color_spec: assertion `E_IS_SOURCE (source)' failed (evolution:5603): e-data-server-CRITICAL **: e_source_set_color_spec: assertion `E_IS_SOURCE (source)' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5603): evolution-mail-CRITICAL **: e_mail_reader_changed: assertion `E_IS_MAIL_READER (reader)' failed (evolution:5603): evolution-mail-CRITICAL **: e_mail_reader_changed: assertion `E_IS_MAIL_READER (reader)' failed (evolution:5603): evolution-mail-CRITICAL **: e_mail_reader_changed: assertion `E_IS_MAIL_READER (reader)' failed (evolution:5603): evolution-mail-CRITICAL **: mail_browser_message_list_built_cb: assertion `E_IS_MAIL_BROWSER (browser)' failed (evolution:5603): GLib-GObject-WARNING **: gsignal.c:2922: signal id `504' is invalid for instance `0xecbc80' (evolution:5603): evolution-shell-CRITICAL **: e_shell_backend_get_shell: assertion `E_IS_SHELL_BACKEND (shell_backend)' failed (evolution:5603): evolution-shell-CRITICAL **: e_shell_get_shell_settings: assertion `E_IS_SHELL (shell)' failed (gnome-screensaver:2078): GdkPixbuf-CRITICAL **: gdk_pixbuf_format_get_name: assertion `format != NULL' failed ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" ** Message: NumLock remembering disabled because hostname is set to "localhost" (evolution:5948): e-data-server-DEBUG: Loading categories from "/home/dcbw/.evolution/categories.xml" (evolution:5948): e-data-server-DEBUG: Loaded 29 categories (evolution:5948): e-data-server-CRITICAL **: e_source_get_property: assertion `E_IS_SOURCE (source)' failed (evolution:5948): e-data-server-CRITICAL **: e_source_set_property: assertion `E_IS_SOURCE (source)' failed (evolution:5948): e-data-server-CRITICAL **: e_source_peek_color_spec: assertion `E_IS_SOURCE (source)' failed (evolution:5948): e-data-server-CRITICAL **: e_source_set_color_spec: assertion `E_IS_SOURCE (source)' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): filter-CRITICAL **: e_filter_option_add: assertion `find_option (option, value) == NULL' failed (evolution:5948): evolution-shell-CRITICAL **: e_shell_backend_get_shell: assertion `E_IS_SHELL_BACKEND (shell_backend)' failed (evolution:5948): evolution-shell-CRITICAL **: e_shell_get_shell_settings: assertion `E_IS_SHELL (shell)' failed
I can reproduce this too, most easily with never-before-seen messages with the preview pane turned off. Timing is everything. Close the message window and the widget (EMailBrowser) gets disposed but not yet finalized. Then a callback fires where EMailBrowser is the closure, but by that point it's an empty husk. Looks like either a reference counting issue or some asynchronous operation isn't getting cancelled during dispose.
Think I got it. Details in the commit message. http://git.gnome.org/browse/evolution/commit/?id=bc054c94cb46e4f8f8881c2a1b0268e2f05b307b http://git.gnome.org/browse/evolution/commit/?h=gnome-2-30&id=4a2343cb34498c701e71679e3c50c9fc81dd5b80
*** Bug 619053 has been marked as a duplicate of this bug. ***
*** Bug 630096 has been marked as a duplicate of this bug. ***
*** Bug 630530 has been marked as a duplicate of this bug. ***
*** Bug 634061 has been marked as a duplicate of this bug. ***
I'm still getting daily (...) e_tree_node_is_expanded crashes in 2.32.1 on Fedora 14/x86_64.
+ Trace 225423
Thread 1 (Thread 5152)
Please reopen bug.
Reopening per comment #14. Gilboa, do you have any specific steps for a reproducer, please? You know, "changing messages quickly" is quite vague.
To be honest, it seems that following scenario, done in quick succession, triggers this bug at least once a day: - Select new message. - Press "reply". - Edit reply. - Press "send". - Press "ESC" to close the original message. - Gilboa
Gilboa's scenario is happening for me on a daily basis.
Might be fixed with patch from bug #600013, at least the initial crash report. Thus I'm marking this as a duplicate of it. *** This bug has been marked as a duplicate of bug 600013 ***
You sure? The callstack on 600013 looks completely different... - Gilboa
I have disabled the Exchange account, and now I don't have any crashes. So I don't think it's the same anymore.
I guess so. This is sort of timing issue, which the bug #600013 was about. The code changed slightly between 2.30 and 2.91, which I believe is the cause for different backtrace. I always can be wrong, though.