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 675728 - [abrt] Crash in strcmp, e_filter_rule_find_list
[abrt] Crash in strcmp, e_filter_rule_find_list
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
: 673077 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-05-09 08:50 UTC by Milan Crha
Modified: 2013-07-25 13:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot: before deleting (152.00 KB, image/png)
2012-05-10 10:49 UTC, Ankur Sinha (FranciscoD)
  Details
Screenshot: after deleting (151.97 KB, image/png)
2012-05-10 10:50 UTC, Ankur Sinha (FranciscoD)
  Details
evo patch (1.67 KB, patch)
2012-05-10 18:10 UTC, Milan Crha
committed Details | Review

Description Milan Crha 2012-05-09 08:50:46 UTC
Moving this from a downstream bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=819346

[abrt] evolution-3.4.1-2.fc17: strcmp: Process /usr/bin/evolution was killed by signal 11 (SIGSEGV)

libreport version: 2.0.10
abrt_version:   2.0.10
backtrace_rating: 4
cmdline:        evolution
comment:        I renamed some of my folders, and the filters didn't appear to
updated. I was in the process of manually updating my filters when evolution
crashed. 
crash_function: strcmp
executable:     /usr/bin/evolution
kernel:         3.3.4-4.fc17.x86_64
time:           Monday 07 May 2012 12:18:48 AM IST

How to reproduce:

1. Add 3-4 filters
2. Delete one of the filters
3. You'll notice that the filter is removed and the next one that moves in it's
place has all buttons greyed out (This is also a bug).
4. Modify another filter, hit OK
5. See it crash. 
6. If you've made changes to any filters, they will all be lost in the crash :(

Core was generated by `evolution'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 0x7f58823f19c0 (LWP 2277))

  • #0 __strcmp_sse42
    at ../sysdeps/x86_64/multiarch/strcmp-sse42.S line 163
  • #1 e_filter_rule_find_list
    at e-filter-rule.c line 1150
  • #2 e_rule_context_find_rule
    at e-rule-context.c line 768
  • #3 edit_editor_response
    at e-rule-editor.c line 315
  • #4 g_closure_invoke
    at gclosure.c line 777
  • #5 signal_emit_unlocked_R
    at gsignal.c line 3547
  • #6 g_signal_emit_valist
    at gsignal.c line 3296
  • #7 g_signal_emit
    at gsignal.c line 3352
  • #8 _g_closure_invoke_va
    at gclosure.c line 840
  • #9 g_signal_emit_valist
    at gsignal.c line 3207
  • #10 g_signal_emit
    at gsignal.c line 3352
  • #11 gtk_real_button_released
    at gtkbutton.c line 2007
  • #12 g_closure_invoke
    at gclosure.c line 777
  • #13 signal_emit_unlocked_R
    at gsignal.c line 3477
  • #14 g_signal_emit_valist
    at gsignal.c line 3296
  • #15 g_signal_emit
    at gsignal.c line 3352
  • #16 gtk_button_button_release
    at gtkbutton.c line 1842
  • #17 gtk_button_button_release
    at gtkbutton.c line 1834
  • #18 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #19 _g_closure_invoke_va
    at gclosure.c line 840
  • #20 g_signal_emit_valist
    at gsignal.c line 3207
  • #21 g_signal_emit
    at gsignal.c line 3352
  • #22 gtk_widget_event_internal
    at gtkwidget.c line 6380
  • #23 gtk_widget_event
    at gtkwidget.c line 6037
  • #24 propagate_event_up
    at gtkmain.c line 2390
  • #25 propagate_event
    at gtkmain.c line 2490
  • #26 gtk_main_do_event
    at gtkmain.c line 1713
  • #27 gdk_event_source_dispatch
    at gdkeventsource.c line 358
  • #28 g_main_dispatch
    at gmain.c line 2515
  • #29 g_main_context_dispatch
    at gmain.c line 3052
  • #30 g_main_context_iterate
    at gmain.c line 3123
  • #31 g_main_loop_run
    at gmain.c line 3317
  • #32 gtk_main
    at gtkmain.c line 1161
  • #33 main
    at main.c line 681

Comment 1 Milan Crha 2012-05-10 10:31:12 UTC
Interesting, I cannot reproduce this with my 3.4.2 (git's gnome-3-4 branch build) on Fedora 16 - I do not see step 3, which might be the difference here. But if I try with 3.4.1 on Fedora 17, then I am able to reproduce this.
Comment 2 Ankur Sinha (FranciscoD) 2012-05-10 10:49:04 UTC
Created attachment 213790 [details]
Screenshot: before deleting
Comment 3 Ankur Sinha (FranciscoD) 2012-05-10 10:50:06 UTC
Created attachment 213791 [details]
Screenshot: after deleting

Please observe that the entire list has moved, and the entry that was next to the one I deleted has values greyed out in the right hand side buttons. 

Thanks,
Ankur :)
Comment 4 Milan Crha 2012-05-10 17:20:18 UTC
Oh, you've quite many filters defined. :)

This looks like a new behaviour of gtk3, which signals "selection changed" on row deletion, thus evolution deleted newly selected rule, instead of the currently selected (the one before delete). I'm currently testing the patch, which I'll upload shortly, if it'll work.
Comment 5 Milan Crha 2012-05-10 18:10:29 UTC
Created attachment 213825 [details] [review]
evo patch

for evolution;

So it's as I said above, the signal on "cursor-changed" is newly emitted on list store removal, which made evolution's code misbehave.
Comment 6 Milan Crha 2012-05-10 18:14:00 UTC
Created commit c2380dc in evo master (3.5.2+)
Created commit 30aa006 in evo gnome-3-4 (3.4.2+)
Comment 7 Milan Crha 2013-07-25 13:04:12 UTC
*** Bug 673077 has been marked as a duplicate of this bug. ***