GNOME Bugzilla – Bug 601847
Crash in gtkhtml.c:command()
Last modified: 2009-11-14 04:53:34 UTC
0) This is a gtkhtml related crash. Filed here, because I seem to remember only evolution developers care. 1) Crash happens when trying to close evolution after trying to accept a meeting without an organizer. (Complicating factor: that meeting request was sent as a TNEF Encoded attachment. Maybe my current attempts to make the TNEF Attachment decoder plugin work are to blame.) 2) Trying to accept that meeting will trigger this "Evolution Warning": "This message cannot be sent because you have not specified any recipients Please enter a valid email address in the To: field. You can search for email addresses by clicking on the To: button next to the entry box." 3) After closing evolution a lot of messages appeared to have been printed to stdout/stderr: ** Message: Response 1 (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_radio_action_get_current_value: assertion `GTK_IS_RADIO_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_set_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_set_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_set_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_set_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_account: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): e-attachment-view.c-CRITICAL **: e_attachment_view_get_store: assertion `E_IS_ATTACHMENT_VIEW (view)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_subject: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_account: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_reply_to: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_header: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_get_visible: assertion `E_IS_COMPOSER_HEADER (header)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_table_get_header: assertion `E_IS_COMPOSER_HEADER_TABLE (table)' failed (evolution:8060): composer-CRITICAL **: e_composer_header_get_visible: assertion `E_IS_COMPOSER_HEADER (header)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed (evolution:8060): Gtk-CRITICAL **: gtk_ui_manager_get_action_groups: assertion `GTK_IS_UI_MANAGER (self)' failed (evolution:8060): gtkhtml-editor-CRITICAL **: gtkhtml_editor_get_action: assertion `action != NULL' failed (evolution:8060): Gtk-CRITICAL **: gtk_toggle_action_get_active: assertion `GTK_IS_TOGGLE_ACTION (action)' failed Segmentation fault (core dumped) 4) backtrace:
+ Trace 219071
5) My suggestions: a) Maybe gtk_html_command() could be changed like this: --- gtkhtml/gtkhtml.c.crash 2009-08-09 16:29:34.000000000 +0200 +++ gtkhtml/gtkhtml.c 2009-11-13 22:48:47.000000000 +0100 @@ -6005,7 +6005,7 @@ gtk_html_command (GtkHTML *html, const g class = G_ENUM_CLASS (g_type_class_ref (GTK_TYPE_HTML_COMMAND)); val = g_enum_get_value_by_nick (class, command_name); g_type_class_unref (class); - if (val) { + if (html && val) { if (command (html, val->value)) { if (html->priv->update_styles) gtk_html_update_styles (html); b) Maybe gtkhtml_editor_run_command() could also be changed: --- ./components/editor/gtkhtml-editor.c.crash 2009-07-03 06:46:11.000000000 +0200 +++ ./components/editor/gtkhtml-editor.c 2009-11-13 22:52:49.000000000 +0100 @@ -1539,6 +1539,8 @@ gtkhtml_editor_run_command (GtkhtmlEdito g_return_val_if_fail (command != NULL, FALSE); html = gtkhtml_editor_get_html (editor); + if (!html) + return FALSE; return gtk_html_command (html, command); } Neither suggestion is tested (I haven't even tried to compile them). I wouldn't mind testing these, writing real patches and maybe even committing some patches. So feel free to ask me to test, write and/or commit.
Could be duplicate of https://bugzilla.gnome.org/show_bug.cgi?id=596566 (but still filed because no gtkhtml patches proposed there). (Neat that bugzilla.gnome.org warns for this nowadays!)
Paul, better to track in a single bug. Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of bug 596566 ***