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 655507 - crash on startup when initializing spamassassin
crash on startup when initializing spamassassin
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Plugins
3.2.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: Milan Crha
Evolution QA team
: 655593 655661 655750 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-07-28 14:36 UTC by Pedro Villavicencio
Modified: 2013-09-13 01:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
evo patch (1.13 KB, patch)
2011-08-03 12:35 UTC, Milan Crha
committed Details | Review

Description Pedro Villavicencio 2011-07-28 14:36:25 UTC
this report has been filed here:

https://bugs.launchpad.net/ubuntu/+source/evolution/+bug/817466

"After the 3.1.3-0ubuntu2 => 3.1.4-0ubuntu1 upgrade in oneiric this morning, evolution started to crash on startup.
100% reproducible.

It seems to happen while initializing the spamassassin plugin.

Attached a trace.

For now, I've downgraded both evo and e-d-s (to 3.1.3.1-0ubuntu3) and it's ok."

backtrace:

Core was generated by `evolution'.
Program terminated with signal 11, Segmentation fault.
  • #0 __strcmp_ssse3
    at ../sysdeps/i386/i686/multiarch/strcmp-ssse3.S line 75
  • #0 __strcmp_ssse3
    at ../sysdeps/i386/i686/multiarch/strcmp-ssse3.S line 75
  • #1 g_str_equal
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 g_hash_table_lookup
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #3 g_intern_static_string
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #4 g_param_spec_internal
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #5 g_param_spec_boolean
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #6 e_spam_assassin_class_init
    at evolution-spamassassin.c line 1081
  • #7 e_spam_assassin_class_intern_init
    at evolution-spamassassin.c line 107
  • #8 g_type_class_ref
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #9 extensible_load_extension
    at e-extensible.c line 94
  • #10 e_type_traverse
    at e-util.c line 526
  • #11 e_type_traverse
    at e-util.c line 520
  • #12 e_extensible_load_extensions
    at e-extensible.c line 142
  • #13 mail_session_constructed
    at e-mail-session.c line 730
  • #14 g_object_newv
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #15 g_object_new_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 g_object_new
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 e_mail_session_new
    at e-mail-session.c line 1188
  • #18 mail_backend_constructed
    at e-mail-backend.c line 569
  • #19 mail_shell_backend_constructed
    at e-mail-shell-backend.c line 372
  • #20 g_object_newv
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #21 g_object_new_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #22 g_object_new
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #23 extensible_load_extension
    at e-extensible.c line 100
  • #24 e_type_traverse
    at e-util.c line 526
  • #25 e_type_traverse
    at e-util.c line 520
  • #26 e_type_traverse
    at e-util.c line 520
  • #27 e_extensible_load_extensions
    at e-extensible.c line 142
  • #28 e_extensible_list_extensions
    at e-extensible.c line 172
  • #29 e_shell_load_modules
    at e-shell.c line 1336
  • #30 main
  • #0 __strcmp_ssse3
    at ../sysdeps/i386/i686/multiarch/strcmp-ssse3.S line 75
  • #1 g_str_equal
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 g_hash_table_lookup
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #3 g_intern_static_string
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #4 g_param_spec_internal
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #5 g_param_spec_boolean
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #6 e_spam_assassin_class_init
    at evolution-spamassassin.c line 1081
  • #7 e_spam_assassin_class_intern_init
    at evolution-spamassassin.c line 107
  • #8 g_type_class_ref
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #9 extensible_load_extension
    at e-extensible.c line 94
  • #10 e_type_traverse
    at e-util.c line 526
  • #11 e_type_traverse
    at e-util.c line 520
  • #12 e_extensible_load_extensions
    at e-extensible.c line 142
  • #13 mail_session_constructed
    at e-mail-session.c line 730
  • #14 g_object_newv
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #15 g_object_new_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 g_object_new
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 e_mail_session_new
    at e-mail-session.c line 1188
  • #18 mail_backend_constructed
    at e-mail-backend.c line 569
  • #19 mail_shell_backend_constructed
    at e-mail-shell-backend.c line 372
  • #20 g_object_newv
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #21 g_object_new_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #22 g_object_new
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #23 extensible_load_extension
    at e-extensible.c line 100
  • #24 e_type_traverse
    at e-util.c line 526
  • #25 e_type_traverse
    at e-util.c line 520
  • #26 e_type_traverse
    at e-util.c line 520
  • #27 e_extensible_load_extensions
    at e-extensible.c line 142
  • #28 e_extensible_list_extensions
    at e-extensible.c line 172
  • #29 e_shell_load_modules
    at e-shell.c line 1336
  • #30 main

Comment 1 Milan Crha 2011-08-03 12:35:29 UTC
Created attachment 193164 [details] [review]
evo patch

for evolution;

Thanks for a bug report. Could you give your user a package with this patch included, please? It may fix the issue, I hope. The problem seems to be that the module got unloded, while the GType system kept static string from that module, thus it later failed, especially when the memory itself was rewritten with other stuff. This patch keeps extensions loaded "forever".
Comment 2 Matthew Barnes 2011-08-03 14:43:12 UTC
Fixed in:
http://git.gnome.org/browse/evolution/commit/?id=4fc04af617091c77dfc9f6353299378918cb69cc

I keep forgetting to avoid G_PARAM_STATIC_STRINGS when installing GObject properties in dynamically loaded modules.
Comment 3 Milan Crha 2011-08-03 15:14:12 UTC
Well, are you sure it's enough? Because it doesn't work for comp-editor, which valgrind dislikes on master, but likes on 3.0.x. Valgrind claims the below thing, and with my tests, the module with comp-editor is loaded and unloaded more than 10 times without my patch, where with the patch it's loaded only twice (the first time is from e-shell routine which I'm not sure whether worth the code).

 Invalid read of size 1
    at 0x4A079B1: strcmp (mc_replace_strmem.c:538)
    by 0x3A98662C98: g_str_equal (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3A98631CDD: g_hash_table_lookup (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3A9862948D: g_intern_static_string (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x17F97705: comp_editor_get_type (comp-editor.c:210)
    by 0x17C89AD2: cal_config_comp_editor_class_init
(e-cal-config-comp-editor.c:89)
    by 0x3A9962F382: g_type_class_ref (in /lib64/libgobject-2.0.so.0.2800.8)
    by 0x64DB326: extensible_load_extension (e-extensible.c:94)
    by 0x64F07D1: e_type_traverse (e-util.c:526)
    by 0x64DB4B5: e_extensible_load_extensions (e-extensible.c:142)
    by 0x64DB5A9: e_extensible_list_extensions (e-extensible.c:172)
    by 0x4C27299: e_shell_load_modules (e-shell.c:1336)
    by 0x4032EB: main (main.c:664)
  Address 0x13200a2a is 6 bytes before a block of size 24 free'd
    at 0x4A055FE: free (vg_replace_malloc.c:366)
    by 0x3A98649742: g_free (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3A9865E85E: g_slice_free1 (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3A98663149: g_string_free (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3A98630F47: g_build_filename (in /lib64/libglib-2.0.so.0.2800.8)
    by 0x3AA731C287: ensure_valid_themes (gtkicontheme.c:1091)
    by 0x3AA731C415: choose_icon (gtkicontheme.c:1241)
    by 0x3AA731CF31: gtk_icon_theme_lookup_icon (gtkicontheme.c:1416)
    by 0x59E5B7B: preferences_window_load_pixbuf (e-preferences-window.c:109)
    by 0x59E6A19: e_preferences_window_add_page (e-preferences-window.c:418)
    by 0x10A5540A: mail_shell_backend_constructed (e-mail-shell-backend.c:404)
    by 0x3A996131F2: g_object_newv (in /lib64/libgobject-2.0.so.0.2800.8)
    by 0x3A99613B15: g_object_new_valist (in /lib64/libgobject-2.0.so.0.2800.8)
    by 0x3A99613E23: g_object_new (in /lib64/libgobject-2.0.so.0.2800.8)
    by 0x64DB369: extensible_load_extension (e-extensible.c:100)
    by 0x64F07D1: e_type_traverse (e-util.c:526)
    by 0x64F07A8: e_type_traverse (e-util.c:520)
    by 0x64F07A8: e_type_traverse (e-util.c:520)
    by 0x64DB4B5: e_extensible_load_extensions (e-extensible.c:142)
    by 0x64DB5A9: e_extensible_list_extensions (e-extensible.c:172)
    by 0x4C27299: e_shell_load_modules (e-shell.c:1336)
    by 0x4032EB: main (main.c:664)

Also, here's a downstream bug about complete failure to start evolution 3.1.4:
https://bugzilla.redhat.com/show_bug.cgi?id=726915
Comment 4 Milan Crha 2011-08-04 05:44:58 UTC
I've a confirmation from a downstream reporter that the attached fix helped him, thus I'm committing it to sources.

Created commit 90f7050 in evo master (3.1.5+)
Comment 5 Milan Crha 2011-08-31 08:55:23 UTC
*** Bug 655593 has been marked as a duplicate of this bug. ***
Comment 6 Milan Crha 2011-08-31 08:58:35 UTC
*** Bug 655661 has been marked as a duplicate of this bug. ***
Comment 7 Milan Crha 2011-08-31 09:00:36 UTC
*** Bug 655750 has been marked as a duplicate of this bug. ***