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 618902 - Crash when viewing/closing messages quickly
Crash when viewing/closing messages quickly
Status: RESOLVED DUPLICATE of bug 600013
Product: evolution
Classification: Applications
Component: Mailer
2.30.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
: 619053 630096 630530 634061 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-05-17 17:22 UTC by Dan Williams
Modified: 2011-01-28 10:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dan Williams 2010-05-17 17:22:32 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.
Comment 1 Dan Williams 2010-05-17 17:24:08 UTC
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.
Comment 2 Dan Williams 2010-05-17 17:26:37 UTC
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
  • #0 e_tree_node_is_expanded
    from /usr/lib64/evolution/2.30/libetable.so.0
  • #1 ??
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #2 ??
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #3 ??
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #4 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #5 ??
    from /lib64/libglib-2.0.so.0
  • #6 g_main_context_iteration
    from /lib64/libglib-2.0.so.0
  • #7 gtk_main_iteration
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #8 mail_msg_wait
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #9 mail_async_event_destroy
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #10 ??
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #11 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #12 ??
    from /lib64/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #14 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #15 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #16 g_object_unref
    from /lib64/libgobject-2.0.so.0
  • #17 ??
    from /usr/lib64/evolution/2.30/libevolution-mail.so.0
  • #18 g_object_run_dispose
    from /lib64/libgobject-2.0.so.0
  • #19 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #20 ??
    from /lib64/libgobject-2.0.so.0
  • #21 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #22 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #23 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #24 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #25 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #26 ??
    from /lib64/libgobject-2.0.so.0
  • #27 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #28 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #29 gtk_accel_group_activate
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #30 gtk_accel_groups_activate
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #31 gtk_window_activate_key
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #32 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #33 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #34 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #35 ??
    from /lib64/libgobject-2.0.so.0
  • #36 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #37 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #38 ??
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #39 gtk_propagate_event
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #40 gtk_main_do_event
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #41 ??
    from /usr/lib64/libgdk-x11-2.0.so.0
  • #42 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #43 ??
    from /lib64/libglib-2.0.so.0
  • #44 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #45 gtk_main
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #46 ??
  • #47 __libc_start_main
    from /lib64/libc.so.6
  • #48 ??
  • #49 ??
  • #50 ??
  • #51 ??
  • #52 ??
  • #53 ??

Comment 3 Dan Williams 2010-05-17 17:57:35 UTC
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
  • #0 mail_reader_message_loaded_cb
    at e-mail-reader.c line 1840
  • #1 mail_msg_idle_cb
    at mail-mt.c line 453
  • #2 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #3 ??
    from /lib64/libglib-2.0.so.0
  • #4 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #5 gtk_main
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #6 main
    at main.c line 578

Comment 4 Dan Williams 2010-05-17 18:10:22 UTC
Evolution version:

evolution-2.30.1-2.fc13.x86_64
Comment 5 Dan Williams 2010-05-17 18:12:05 UTC
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
  • #0 mail_reader_message_loaded_cb
    at e-mail-reader.c line 1840
  • #1 mail_msg_idle_cb
    at mail-mt.c line 453
  • #2 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #3 ??
    from /lib64/libglib-2.0.so.0
  • #4 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #5 gtk_main
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #6 main
    at main.c line 578
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
Comment 6 Dan Williams 2010-05-17 18:13:37 UTC
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.
Comment 7 Dan Williams 2010-05-17 18:15:46 UTC
~/.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
Comment 8 Matthew Barnes 2010-05-18 02:13:42 UTC
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.
Comment 10 Fabio Durán Verdugo 2010-05-19 21:34:26 UTC
*** Bug 619053 has been marked as a duplicate of this bug. ***
Comment 11 Reinout van Schouwen 2010-09-19 19:33:28 UTC
*** Bug 630096 has been marked as a duplicate of this bug. ***
Comment 12 Fabio Durán Verdugo 2010-09-24 15:48:58 UTC
*** Bug 630530 has been marked as a duplicate of this bug. ***
Comment 13 Milan Crha 2010-11-18 09:41:24 UTC
*** Bug 634061 has been marked as a duplicate of this bug. ***
Comment 14 Gilboa Davara 2011-01-06 10:41:49 UTC
I'm still getting daily (...) e_tree_node_is_expanded crashes in 2.32.1 on Fedora 14/x86_64.

Thread 1 (Thread 5152)

  • #0 e_tree_node_is_expanded
    at e-tree.c line 2126
  • #1 message_list_change_first_visible_parent
    at message-list.c line 3514
  • #2 main_folder_changed
    at message-list.c line 3657
  • #3 do_async_event
    at mail-mt.c line 621

Please reopen bug.
Comment 15 Milan Crha 2011-01-06 13:08:56 UTC
Reopening per comment #14. Gilboa, do you have any specific steps for a reproducer, please? You know, "changing messages quickly" is quite vague.
Comment 16 Gilboa Davara 2011-01-09 11:17:58 UTC
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
Comment 17 Runar Ingebrigtsen 2011-01-15 18:26:39 UTC
Gilboa's scenario is happening for me on a daily basis.
Comment 18 Milan Crha 2011-01-17 07:47:28 UTC
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 ***
Comment 19 Gilboa Davara 2011-01-28 05:51:26 UTC
You sure? The callstack on 600013 looks completely different...

- Gilboa
Comment 20 Runar Ingebrigtsen 2011-01-28 07:38:25 UTC
I have disabled the Exchange account, and now I don't have any crashes. So I don't think it's the same anymore.
Comment 21 Milan Crha 2011-01-28 10:00:30 UTC
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.