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 612792 - Crash when trying to delete WebDav addressbook
Crash when trying to delete WebDav addressbook
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Contacts
2.30.x (obsolete)
Other All
: Urgent critical
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2010-03-13 14:21 UTC by Priit Laes (IRC: plaes)
Modified: 2013-09-13 01:06 UTC
See Also:
GNOME target: ---
GNOME version: 2.29/2.30


Attachments
Patch to fix the immediate crash (2.10 KB, patch)
2010-03-15 13:24 UTC, Matthew Barnes
committed Details | Review
Followup work to prevent this from happening again (7.27 KB, patch)
2010-03-15 13:37 UTC, Matthew Barnes
committed Details | Review

Description Priit Laes (IRC: plaes) 2010-03-13 14:21:43 UTC
Version: 2.30.x

What were you doing when the application crashed?
I was modifying WebDAV-based contact list options (one of them was URL)


Distribution: Gentoo Base System release 2.0.1
Gnome Release: 2.28.2 2010-03-07 (Gentoo)
BugBuddy Version: 2.28.0

System: Linux 2.6.33-04714-geaa5eec #190 SMP Thu Mar 4 11:57:24 EET 2010 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10705000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Clearlooks Compact
Icon Theme: gnome
GTK+ Modules: canberra-gtk-module, gnomebreakpad

Memory status: size: 758865920 vsize: 758865920 resident: 44625920 share: 25321472 rss: 44625920 rss_rlim: 18446744073709551615
CPU usage: start_time: 1268489992 rtime: 190 utime: 180 stime: 10 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

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

[?1034hTraceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib64/libgobject-2.0.so.0.2304.0-gdb.py", line 9, in <module>
    from gobject import register
  File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
    import gdb.backtrace
ImportError: No module named backtrace
[Thread debugging using libthread_db enabled]
[New Thread 0x7f5ab3f7f710 (LWP 18370)]
[New Thread 0x7f5abcff9710 (LWP 18359)]
[New Thread 0x7f5abd7fa710 (LWP 18353)]
[New Thread 0x7f5abe7fc710 (LWP 18350)]
[New Thread 0x7f5abeffd710 (LWP 18349)]
[New Thread 0x7f5abf7fe710 (LWP 18348)]
[New Thread 0x7f5abffff710 (LWP 18347)]
[New Thread 0x7f5ac5712710 (LWP 18344)]
[New Thread 0x7f5ac5f13710 (LWP 18343)]
[New Thread 0x7f5ac6935710 (LWP 18342)]
[New Thread 0x7f5ac7136710 (LWP 18341)]
0x00007f5adcfccbcd in __libc_waitpid (pid=18400, stat_loc=<value optimized out>, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:41
	in ../sysdeps/unix/sysv/linux/waitpid.c

Thread 1 (Thread 0x7f5adf0f9760 (LWP 18337))

  • #0 __libc_waitpid
    at ../sysdeps/unix/sysv/linux/waitpid.c line 41
  • #1 IA__g_spawn_sync
    at gspawn.c line 386
  • #2 IA__g_spawn_command_line_sync
    at gspawn.c line 700
  • #3 run_bug_buddy
    at gnome-breakpad.cc line 369
  • #4 check_if_gdb
    at gnome-breakpad.cc line 440
  • #5 bugbuddy_segv_handle
    at gnome-breakpad.cc line 223
  • #6 <signal handler called>
  • #7 strlen
    at ../sysdeps/x86_64/strlen.S line 31
  • #8 IA__g_strdup
    at gstrfuncs.c line 101
  • #9 e_alert_new_valist
    at e-alert.c line 522
  • #10 e_alert_run_dialog_for_args
    at e-alert-dialog.c line 315
  • #11 action_address_book_delete_cb
    at e-book-shell-view-actions.c line 71
  • #12 IA__g_closure_invoke
    at gclosure.c line 767
  • #13 signal_emit_unlocked_R
    at gsignal.c line 3243
  • #14 IA__g_signal_emit_valist
    at gsignal.c line 2976
  • #15 IA__g_signal_emit
    at gsignal.c line 3033
  • #16 _gtk_action_emit_activate
    at gtkaction.c line 755
  • #17 IA__g_closure_invoke
    at gclosure.c line 767
  • #18 signal_emit_unlocked_R
    at gsignal.c line 3243
  • #19 IA__g_signal_emit_valist
    at gsignal.c line 2976
  • #20 IA__g_signal_emit
    at gsignal.c line 3033
  • #21 _gtk_action_emit_activate
    at gtkaction.c line 755
  • #22 IA__g_closure_invoke
    at gclosure.c line 767
  • #23 signal_emit_unlocked_R
    at gsignal.c line 3173
  • #24 IA__g_signal_emit_valist
    at gsignal.c line 2976
  • #25 IA__g_signal_emit
    at gsignal.c line 3033
  • #26 IA__gtk_widget_activate
    at gtkwidget.c line 4972
  • #27 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1223
  • #28 gtk_menu_shell_button_release
    at gtkmenushell.c line 679
  • #29 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #30 IA__g_closure_invoke
    at gclosure.c line 767
  • #31 signal_emit_unlocked_R
    at gsignal.c line 3281
  • #32 IA__g_signal_emit_valist
    at gsignal.c line 2986
  • #33 IA__g_signal_emit
    at gsignal.c line 3033
  • #34 gtk_widget_event_internal
    at gtkwidget.c line 4941
  • #35 IA__gtk_propagate_event
    at gtkmain.c line 2442
  • #36 IA__gtk_main_do_event
    at gtkmain.c line 1647
  • #37 gdk_event_dispatch
    at gdkevents-x11.c line 2372
  • #38 g_main_dispatch
    at gmain.c line 1960
  • #39 IA__g_main_context_dispatch
    at gmain.c line 2513
  • #40 g_main_context_iterate
    at gmain.c line 2591
  • #41 IA__g_main_loop_run
    at gmain.c line 2799
  • #42 IA__gtk_main
    at gtkmain.c line 1219

	Inferior 1 [process 18337] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
Comment 1 Priit Laes (IRC: plaes) 2010-03-13 14:54:58 UTC
Simple right click on addressbook on sidebar and then selecting the "Delete this addressbook" causes crash.
Comment 2 Matthew Barnes 2010-03-15 13:24:59 UTC
Created attachment 156174 [details] [review]
Patch to fix the immediate crash

The bug was caused by not passing a NULL to a function expecting a NULL terminated list of strings.

Fixed this and a few other cases which I was able to catch with some followup cleaning I did.  Will post that patch next.
Comment 3 Matthew Barnes 2010-03-15 13:37:37 UTC
Created attachment 156175 [details] [review]
Followup work to prevent this from happening again

This patch adds a "sentinel" function attribute to some of the functions that take a NULL-terminated string list (and also discards an unnecessary function parameter so the attribute works right).  This will allow GCC to catch any future cases like this and alert us with a compiler warning.
Comment 4 Matthew Barnes 2010-03-15 14:08:58 UTC
I emailed release-team for approval on this.
Comment 5 Milan Crha 2010-03-15 14:22:39 UTC
I tested both patches and they seem to do the right thing.
Comment 6 Matthew Barnes 2010-03-15 14:54:27 UTC
Code-freeze isn't in effect just yet so I'm going to commit these now.  I'm pretty confident they fix the crash, but Priit if you could verify I'd appreciate it, as neither Milan nor I can reproduce it.

Crash fix:
http://git.gnome.org/browse/evolution/commit/?id=ea52ab83fe121796a12a090ce81ba114d2c368ed

Followup work:
http://git.gnome.org/browse/evolution/commit/?id=58d0d111af5580051b4d9a5cbaef4d7b96fdcfa8