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 624867 - Crash in em_format_set_mode at em-format.c line 880
Crash in em_format_set_mode at em-format.c line 880
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
2.30.x (obsolete)
Other All
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2010-07-20 19:35 UTC by Reinout van Schouwen
Modified: 2010-08-02 14:38 UTC
See Also:
GNOME target: ---
GNOME version: 2.29/2.30


Attachments
Patch to guard entry point (687 bytes, patch)
2010-08-02 14:07 UTC, Rob Bradford
accepted-commit_now Details | Review
Handle NULL returning from get_formatter (1.40 KB, patch)
2010-08-02 14:12 UTC, Rob Bradford
accepted-commit_now Details | Review

Description Reinout van Schouwen 2010-07-20 19:35:22 UTC
What were you doing when the application crashed?
Switched off full headers display.


Distribution: Mandriva Linux release 2010.1 (Official) for x86_64
Gnome Release: 2.30.0 2010-03-31 (Mandriva)
BugBuddy Version: 2.30.0

System: Linux 2.6.33.6-desktop-0.rc1.1mnb #1 SMP Sat Jul 3 03:29:05 EEST 2010 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10707000
Selinux: No
Accessibility: Enabled
GTK+ Theme: Ia Ora Gray
Icon Theme: Foxtrot
GTK+ Modules: canberra-gtk-module, gail-gnome, gail:atk-bridge, gnomebreakpad

Memory status: size: 1962352640 vsize: 1962352640 resident: 148123648 share: 30236672 rss: 148123648 rss_rlim: 18446744073709551615
CPU usage: start_time: 1279654392 rtime: 1383 utime: 1199 stime: 184 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/evolution'

[Thread debugging using libthread_db enabled]
[New Thread 0x7ff5255d0710 (LWP 27582)]
[New Thread 0x7ff527fff710 (LWP 27372)]
[New Thread 0x7ff50b4a4710 (LWP 26968)]
[New Thread 0x7ff50aca2710 (LWP 26964)]
[New Thread 0x7ff50cca8710 (LWP 26959)]
[New Thread 0x7ff54bfff710 (LWP 26958)]
[New Thread 0x7ff50d4a9710 (LWP 26957)]
[New Thread 0x7ff5179b2710 (LWP 26956)]
[New Thread 0x7ff5171b1710 (LWP 26524)]
[New Thread 0x7ff5161af710 (LWP 26512)]
[New Thread 0x7ff5169b0710 (LWP 26511)]
[New Thread 0x7ff5685aa710 (LWP 26050)]
[New Thread 0x7ff524dcf710 (LWP 25800)]
[New Thread 0x7ff525dd1710 (LWP 25798)]
[New Thread 0x7ff5265d2710 (LWP 25797)]
[New Thread 0x7ff526dd3710 (LWP 25796)]
[New Thread 0x7ff530ca6710 (LWP 25795)]
[New Thread 0x7ff5314a7710 (LWP 25794)]
[New Thread 0x7ff531ca8710 (LWP 25781)]
[New Thread 0x7ff533fff710 (LWP 25780)]
[New Thread 0x7ff54997d710 (LWP 25778)]
[New Thread 0x7ff54a3e7710 (LWP 25777)]
[New Thread 0x7ff54b7fe710 (LWP 25776)]
[New Thread 0x7ff54abe8710 (LWP 25775)]
[New Thread 0x7ff56179b710 (LWP 25773)]
[New Thread 0x7ff560f9a710 (LWP 25760)]
[New Thread 0x7ff561f9c710 (LWP 25758)]
[New Thread 0x7ff56279d710 (LWP 25757)]
[New Thread 0x7ff5631c8710 (LWP 25755)]
[New Thread 0x7ff5639c9710 (LWP 25754)]
0x00007ff57aabdd4d in waitpid () from /lib64/libpthread.so.0

Thread 1 (Thread 0x7ff57cba5860 (LWP 25505))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 IA__g_spawn_sync
    at gspawn.c line 386
  • #2 IA__g_spawn_command_line_sync
    at gspawn.c line 700
  • #3 ??
    from /usr/lib64/gtk-2.0/modules/libgnomebreakpad.so
  • #4 <signal handler called>
  • #5 em_format_set_mode
    at em-format.c line 880
  • #6 IA__g_closure_invoke
    at gclosure.c line 767
  • #7 signal_emit_unlocked_R
    at gsignal.c line 3248
  • #8 IA__g_signal_emit_valist
    at gsignal.c line 2981
  • #9 IA__g_signal_emit
    at gsignal.c line 3038
  • #10 _gtk_action_emit_activate
    at gtkaction.c line 755
  • #11 object_set_property
    at gobject.c line 973
  • #12 IA__g_object_set_property
    at gobject.c line 1690
  • #13 prop_binding_sync_pref_to_prop
    at gconf-bridge.c line 242
  • #14 gconf_listeners_notify
    from /usr/lib64/libgconf-2.so.4
  • #15 ??
    from /usr/lib64/libgconf-2.so.4
  • #16 ??
    from /usr/lib64/libgconf-2.so.4
  • #17 g_main_dispatch
    at gmain.c line 1960
  • #18 IA__g_main_context_dispatch
    at gmain.c line 2513
  • #19 g_main_context_iterate
    at gmain.c line 2591
  • #20 IA__g_main_loop_run
    at gmain.c line 2799
  • #21 IA__gtk_main
    at gtkmain.c line 1219

	Inferior 1 [process 25505] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]


---- Critical and fatal warnings logged during execution ----

** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GLib **: g_hash_table_lookup: assertion `hash_table != NULL' failed 
** GdkPixbuf **: gdk_pixbuf_new: assertion `width > 0' failed 
** GdkPixbuf **: gdk_pixbuf_new: assertion `width > 0' failed 
** evolution-mail **: e_mail_reader_get_html_display: assertion `E_IS_MAIL_READER (reader)' failed 


----------- .xsession-errors ---------------------
(evolution:25505): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
(evolution:25505): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
(nautilus:8465): GdkPixbuf-CRITICAL **: gdk_pixbuf_format_get_name: assertion `format != NULL' failed
(evolution:25505): GdkPixbuf-CRITICAL **: gdk_pixbuf_new: assertion `width > 0' failed
(evolution:25505): GdkPixbuf-CRITICAL **: gdk_pixbuf_new: assertion `width > 0' failed
(evolution:25505): evolution-mail-CRITICAL **: e_mail_reader_get_html_display: assertion `E_IS_MAIL_READER (reader)' failed
warning: no loadable sections found in added symbol-file /usr/lib/debug/usr/lib64/libgnomecanvas-2.so.0.3000.1.debug
Cannot access memory at address 0x78
--------------------------------------------------
Comment 1 Rob Bradford 2010-08-02 14:07:36 UTC
Created attachment 166977 [details] [review]
Patch to guard entry point
Comment 2 Rob Bradford 2010-08-02 14:10:21 UTC
Ah, this is because e_mail_reader_get_formatter can now return NULL (when it is of type EMailNotebookView

from it's get_formatter implementation:


>-------EMailNotebookViewPrivate *priv = E_MAIL_NOTEBOOK_VIEW (reader)->priv;

>-------if (!priv->current_view)
>------->-------return NULL;

>-------return e_mail_reader_get_formatter (E_MAIL_READER(priv->current_view));

I attach two patches. One which guards the entry point to em_format_set_mode and another that correctly bails out of setting the formatter when the action is fired.
Comment 3 Rob Bradford 2010-08-02 14:12:09 UTC
Created attachment 166978 [details] [review]
Handle NULL returning from get_formatter
Comment 4 Srinivasa Ragavan 2010-08-02 14:31:38 UTC
Comment on attachment 166978 [details] [review]
Handle NULL returning from get_formatter

Seems fine to me.
Comment 5 Srinivasa Ragavan 2010-08-02 14:31:41 UTC
Comment on attachment 166977 [details] [review]
Patch to guard entry point

Seems fine to me.
Comment 6 Rob Bradford 2010-08-02 14:38:54 UTC
Fixed in git master. Thanks:

commit 3696034171889e067b7c9b9e118b9746c1986bcf
Author: Rob Bradford <rob@linux.intel.com>
Date:   Mon Aug 2 15:09:27 2010 +0100

    mail-reader: e_mail_reader_get_formatter may now return NULL
    
    Since e_mail_reader_get_formatter (the EMailNotebookView implementation) can
    now return NULL we need to prevent that being passed into other functions.
    
    Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=624867

commit 2b6e5cce1912d6d7bb7f69b7cae29ccb0c8a7161
Author: Rob Bradford <rob@linux.intel.com>
Date:   Mon Aug 2 15:05:32 2010 +0100

    em-format: Guard entry point to em_format_set_mode with g_return_if_fail