Evolution crash when copy/move contact between address books

Bug #831308 reported by Juraj
72
This bug affects 20 people
Affects Status Importance Assigned to Milestone
evolution (Ubuntu)
Fix Released
Undecided
Unassigned
Precise
Won't Fix
Undecided
Unassigned
Trusty
Confirmed
Undecided
Unassigned
Utopic
Confirmed
Undecided
Unassigned

Bug Description

[Impact]

Evolution crashes when attempting to merge contacts (e.g. when copying or moving contacts between address books).

This is rather annoying as the user might not be aware of the cause of the crash (i.e. that a contact with the same name already exists in the destination address book).

The fix is to compile evolution without -Bsymbolic-functions. Compiling with -Bsymbolic-functions is not supported by upstream (https://bugzilla.gnome.org/show_bug.cgi?id=594473). The fix for this issue for Vivid is in bug #1402422.

[Test case]

Steps to reproduce:
- Start evolution
- Create contact with full name "dummy" in Personal address book
- Create contact with full name "dummy" in Personal address book

Expected behavior: Message about merging the contact

Actual behavior:
(evolution:3262): evolution-util-ERROR **: eab-contact-duplicate-detected.ui: Invalid type function on line 88: 'eab_contact_display_get_type'
Trace/breakpoint trap (core dumped)

[Regression potential]

Regression potential is rather low. There is the possibility that some plugins rely on the semantic of -Bsymbolic-functions (i.e. have internal function which are exported and their names clash) but this seems rather unlikely as all (or at least most) other distributions compile without -Bsymbolic-functions.

Revision history for this message
Juraj (juraj-hrcka) wrote :
Revision history for this message
Juraj (juraj-hrcka) wrote : Dependencies.txt

apport information

tags: added: apport-collected
description: updated
Revision history for this message
Bernard Bou (bbou) wrote :

Confirmed
e-utils-ERROR **: eab-contact-duplicate-detected.ui: Invalid type function on line 90: 'eab_contact_display_get_type'

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in evolution (Ubuntu):
status: New → Confirmed
Revision history for this message
Tandemfahrer (doppelsitzer) wrote :

This bug seems to affect plenty more people than just the two previously mentioned. A discussion on the German Ubuntu users forum shows four users affected as well:

http://forum.ubuntuusers.de/topic/evolution-stuerzt-beim-kopieren-von-kontakten/

This is extremely annoying. I have set up several address books, and now I find that it seems to be impossible to synchronize multiple address books with Funambol, thus forcing me to merge all contacts into one address book.

Thanks for any work you can put into this.

Tandemfahrer

Revision history for this message
Siegfried Hille (siegfried-hille) wrote :

The same problem on Ubuntu 10.04. The evolution-databaseserver-2.28 sleeps and use plenty of CPU while trying to copy contacts from ubuntuOne to a local adressbook.

Greetz, Siggi.

Revision history for this message
Steffen Kieß (s-kiess) wrote :

This problem is caused by the fact that
a) there are definitions of eab_contact_display_get_type() in 3 libraries:
   - /usr/lib/evolution/3.2/libecontacteditor.so.0
   - /usr/lib/evolution/3.2/modules/libevolution-module-addressbook.so
   - /usr/lib/evolution/3.2/plugins/liborg-gnome-vcard-inline.so and
b) the code is linked with -Bsymbolic-functions (which seems to be turned on in Ubuntu by default), which means that the both the first and the second definition are used (because calls to eab_contact_display_get_type() do not go through the PLT).

eab_contact_display_get_type() tries to register the type "EABContactDisplay" which only succeeds the first time (for libevolution-module-addressbook.so). The second time (for libecontacteditor.so.0) the type registration fails which causes this error message:

(evolution:20644): GLib-GObject-WARNING **: cannot register existing type `EABContactDisplay'

(evolution:20644): e-utils-ERROR **: eab-contact-duplicate-detected.ui: Invalid type function on line 90: 'eab_contact_display_get_type'
Trace/breakpoint trap (core dumped)

The solution probably is not to use -Bsymbolic-functions for linking evolution.

#912081 and #996903 seem to be duplicates of this bug report.

Revision history for this message
Phira (philippe-rasquinet) wrote :

if ever needed
I have the same problem
I don't kinow how to fix it, but...
if you create a new adress book and move all your contact into it, there is no crash with the new one and you can manage your contacts

Revision history for this message
DrC (drcowsley) wrote :

Has just happened to me on 12.04LTS (encrypted home folder) after an extended period of non-use. Bug #822479 refers?

Triggered by trying to move a contact from one address book to another (coincidentally prehaps, to the last address book on the alphabetically sorted list)

Reproduced giving a message Ubuntu 12.04LTS has encountered an error - duly reported - twice within the past half hour or so before this report.

The error killed Evolution but not the OS.

Evolution was reloaded for the second try (from the top panel icon) so:

If there is a memory leak it is leaking from the OS (ie when Ubuntu killed the running instance of Evolution it didn't get the memory back)

On the other hand it could be Evolution not managing to move the address book entry for some other reason.

Revision history for this message
DrC (drcowsley) wrote :

It is possible there was already a copy in the destination folder - impossible to know now. Trying again with Firefox open crashed Evolution (closed it) without triggering an Ubuntu error message. The source entry will be deleted having confirmed there is a destination copy.

Email me if I can be of further help.

I have work to do building a new address book for a new topic. I will do so without restarting & report anything more of note.

uptime: 17:06:59 up 8 days, 4:08, 2 users, load average: 1.22, 0.59, 0.53

Steffen Kieß (s-kiess)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package evolution - 3.12.9-0ubuntu2

---------------
evolution (3.12.9-0ubuntu2) vivid; urgency=medium

  * Strip -Bsymbolic-functions from LDFLAGS; evo doesn't work when built with
    this (see bgo #594473 for more info) (LP: #1402422, #831308)
 -- Iain Lane <email address hidden> Tue, 16 Dec 2014 12:38:26 +0000

Changed in evolution (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in evolution (Ubuntu Precise):
status: New → Confirmed
Changed in evolution (Ubuntu Trusty):
status: New → Confirmed
Changed in evolution (Ubuntu Utopic):
status: New → Confirmed
Revision history for this message
Trev Peterson (trev-advanced-reality) wrote :

Will this fix be backported to Trusty? Is there a fix for all the LTS people?

Revision history for this message
Steve Langasek (vorlon) wrote :

The Precise Pangolin has reached end of life, so this bug will not be fixed for that release

Changed in evolution (Ubuntu Precise):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.