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 677531 - [abrt] May skip empty vCards in GAL
[abrt] May skip empty vCards in GAL
Status: RESOLVED FIXED
Product: evolution-ews
Classification: Other
Component: Contacts (Global Address List)
3.4.x
Other Linux
: Normal critical
: ---
Assigned To: Evolution EWS maintainer(s)
Evolution EWS maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2012-06-06 07:08 UTC by Milan Crha
Modified: 2012-06-06 13:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ews patch (902 bytes, patch)
2012-06-06 11:18 UTC, Milan Crha
committed Details | Review

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

[abrt] evolution-data-server-3.4.1-2.fc17: g_str_hash: Process /usr/libexec/evolution-addressbook-factory was killed by signal 11 (SIGSEGV)

libreport version: 2.0.10
abrt_version:   2.0.10
backtrace_rating: 4
cmdline:        /usr/libexec/evolution-addressbook-factory
crash_function: g_str_hash
executable:     /usr/libexec/evolution-addressbook-factory
kernel:         3.3.7-1.fc17.x86_64
time:           Mon 04 Jun 2012 04:45:53 PM EDT

comment:
:Appears to have happened during background operation.  My contacts page shows a frozen progress disk with the message "Syncing contacts...".  The contact list in question is on MS Exchange via evolution-ews.
:Can't exit evolution after failure--have to force-shutdown.

Thread 1 (Thread 0x7f8c977fe700 (LWP 13501))

  • #0 g_str_hash
    at ghash.c line 1730
  • #1 g_hash_table_lookup_node
    at ghash.c line 401
  • #2 g_hash_table_insert_internal
    at ghash.c line 1151
  • #3 notify_add
    at e-data-book-view.c line 313
  • #4 e_data_book_view_notify_update
    at e-data-book-view.c line 422
  • #5 view_notify_update
    at e-book-backend.c line 183
  • #6 e_book_backend_foreach_view
    at e-book-backend.c line 829
  • #7 ews_gal_store_contact
    at e-book-backend-ews.c line 1684
  • #8 ews_decode_and_store_oab_records
    at ews-oab-decoder.c line 869
  • #9 ews_oab_decoder_decode
    at ews-oab-decoder.c line 989
  • #10 ews_replace_gal_in_db
    at e-book-backend-ews.c line 1726
  • #11 ebews_start_gal_sync
    at e-book-backend-ews.c line 1782
  • #12 delta_thread
    at e-book-backend-ews.c line 2252
  • #13 g_thread_proxy
    at gthread.c line 801
  • #14 start_thread
    at pthread_create.c line 309
  • #15 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Comment 1 Milan Crha 2012-06-06 07:10:46 UTC
From the backtrace reading the GAL backend has stored completely empty vCard in itself "BEGIN:VCARD\r\nVERSION:3.0\r\nEND:VCARD", but the whole concept requires at least UID to be set. The upper code expected UID, which was NULL, which later led to crash. At least adding sanity checks for UID before using vCards in backend will help.
Comment 2 Milan Crha 2012-06-06 11:18:27 UTC
Created attachment 215731 [details] [review]
ews patch

for evolution-ews;

This should do it, at least until better item for UID is found (here is used SMTP email address, which should each contact have set, though the one from backtrace didn't).
Comment 3 Milan Crha 2012-06-06 11:20:23 UTC
Created commit a1261ca in ews master (3.5.3+)
Created commit 5e87da7 in ews gnome-3-4 (3.4.3+)