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 680682 - Segfault after label attempted deletion
Segfault after label attempted deletion
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
3.4.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2012-07-27 06:06 UTC by Milan Crha
Modified: 2012-07-27 07:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
evo patch (1.46 KB, patch)
2012-07-27 07:24 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2012-07-27 06:06:22 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=843463

Description of problem:
Evotution falls down when I try to delete my custom mail label. The label isn't deleted then. I have still some mails labeled with this label.

I can see this in /var/log/messages:
kernel: [78006.431506] evolution[27949]: segfault at 5 ip 0000003b28031275 sp 00007fffea30b780 error 4 in libgobject-2.0.so.0.3200.4[3b28000000+4b000]

When I run evolution from terminal I get this:
(evolution:28781): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `EMailLabelListStore'
Segmentation fault

Version-Release number of selected component (if applicable):
evolution-3.4.3-2.fc17.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Go to Edit->Preferences
2. In Mail Preferences choose Labels tab
3. Choose some of your custom label (I have to create it if you have none)
4. Click on 'Remove'
  
Actual results:
Segfault

Expected results:
Label should be deleted
Comment 1 Milan Crha 2012-07-27 06:07:25 UTC
On git master:

(evolution:22580): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `EMailLabelListStore'

Backtrace:

0x0000003ddd00eb67 in waitpid () from /lib64/libpthread.so.0
  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 g_spawn_sync
    from /lib64/libglib-2.0.so.0
  • #2 g_spawn_command_line_sync
    from /lib64/libglib-2.0.so.0
  • #3 run_bug_buddy
    at gnome-segvhanlder.c line 240
  • #4 bugbuddy_segv_handle
    at gnome-segvhanlder.c line 191
  • #5 <signal handler called>
  • #6 g_type_check_instance
    from /lib64/libgobject-2.0.so.0
  • #7 g_signal_handlers_block_matched
    from /lib64/libgobject-2.0.so.0
  • #8 labels_model_changed_cb
    at e-mail-label-list-store.c line 221
  • #9 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #10 ??
    from /lib64/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #13 gtk_list_store_remove
    at gtkliststore.c line 1231
  • #14 mail_label_manager_remove_label
    at e-mail-label-manager.c line 252
  • #15 ??
    from /lib64/libgobject-2.0.so.0
  • #16 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #17 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #18 e_mail_label_manager_remove_label
    at e-mail-label-manager.c line 427
  • #19 ??
    from /lib64/libgobject-2.0.so.0
  • #20 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #21 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #22 gtk_real_button_released
    at gtkbutton.c line 2007
  • #23 g_closure_invoke
    from /lib64/libgobject-2.0.so.0
  • #24 ??
    from /lib64/libgobject-2.0.so.0
  • #25 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #26 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #27 gtk_button_button_release
    at gtkbutton.c line 1842
  • #28 gtk_button_button_release
    at gtkbutton.c line 1834
  • #29 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #30 ??
    from /lib64/libgobject-2.0.so.0
  • #31 g_signal_emit_valist
    from /lib64/libgobject-2.0.so.0
  • #32 g_signal_emit
    from /lib64/libgobject-2.0.so.0
  • #33 gtk_widget_event_internal
    at gtkwidget.c line 6380
  • #34 gtk_widget_event
    at gtkwidget.c line 6037
  • #35 propagate_event_up
    at gtkmain.c line 2390
  • #36 propagate_event
    at gtkmain.c line 2490
  • #37 gtk_main_do_event
    at gtkmain.c line 1713
  • #38 gdk_event_source_dispatch
    at gdkeventsource.c line 358
  • #39 g_main_context_dispatch
    from /lib64/libglib-2.0.so.0
  • #40 ??
    from /lib64/libglib-2.0.so.0
  • #41 g_main_loop_run
    from /lib64/libglib-2.0.so.0
  • #42 gtk_main
    at gtkmain.c line 1161
  • #43 main
    at main.c line 674

Comment 2 Milan Crha 2012-07-27 07:24:11 UTC
Created attachment 219721 [details] [review]
evo patch

for evolution;

There was used one callback function for different signals with different prototypes, thus the last parameter was moved by one on the row-deleted signal. This fixes the issue.
Comment 3 Milan Crha 2012-07-27 07:28:00 UTC
Created commit 9e73b40 in evo master (3.5.5+)
Created commit c9da2ba in evo gnome-3-4 (3.4.4+)