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 543628 - Synchronization Evolution contacts -> Gmail Contacts fails
Synchronization Evolution contacts -> Gmail Contacts fails
Status: RESOLVED WONTFIX
Product: conduit
Classification: Other
Component: dataproviders
0.3.x
Other Linux
: Normal normal
: ---
Assigned To: John Carr
conduit-maint@gnome.bugs
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2008-07-18 17:25 UTC by Christoph Langner
Modified: 2018-07-01 09:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add lookup of id's by email address patch (6.28 KB, patch)
2009-03-13 19:28 UTC, Michael
none Details | Review

Description Christoph Langner 2008-07-18 17:25:41 UTC
I'm trying to synchronize my contacts inside Evolution with Google Contacts. The synchronizations fails. When i start conduit from within a shell i get the following log

...
Syncronization      ][DEBUG  ] EvoContactTwoWay-default Changes: Modified 0 items
[] (Synchronization.py:241)
[Syncronization      ][DEBUG  ] EvoContactTwoWay-default Changes: Deleted 1 items
[u'pas-id-478B984F0000000C'] (Synchronization.py:242)
[Syncronization      ][DEBUG  ] Deleted Policy: Ask (Synchronization.py:375)
[Syncronization      ][DEBUG  ] 1WAY PUT: Evolution Contacts (pas-id-478B984F00000010) -----> Google Contacts (Synchronization.py:488)
[datatypes.DataType  ][DEBUG  ] Getting Rid for pas-id-478B984F00000010 (DataType.py:151)
[TypeConverter       ][DEBUG  ] Convert contact -> contact using [('contact', 'contact', {})] (TypeConverter.py:210)
[TypeConverter       ][DEBUG  ] Skipping contact -> contact (TypeConverter.py:169)
[Syncronization      ][INFO   ] Putting data pas-id-478B984F00000010 --> None into ContactsTwoWay-mygmaillogin@gmail.com (Synchronization.py:37)
[modules.Google      ][DEBUG  ] Adding new email address john.example@example.com [] (GoogleModule.py:832)
[modules.Google      ][DEBUG  ] Adding new email address john.example@example.net [] (GoogleModule.py:832)
[modules.Google      ][WARNING] FIXME: FIND THE OLD CONTACT BY EMAIL, GET IT, AND RAISE A CONFLICT EXCEPTION (GoogleModule.py:878)
[Syncronization      ][CRITICAL] UNKNOWN SYNCHRONIZATION ERROR

Using the latest version 0.3.12 of conduit here with Evolution from Ubuntu Hardy Heron here.
Comment 1 Jesse Hallett 2008-07-19 19:47:26 UTC
I am also having trouble with this. While attempting a two-way sync between Evolution and Google Contacts, I get a lot of errors that look like this:

[Syncronization      ][WARNING] Google contacts upload error.
Traceback (most recent call last):
  • File "/var/lib/python-support/python2.5/conduit/Synchronization.py", line 331 in _put_data
    put_data(source, sink, sourceData, sourceDataRid, False)
  • File "/var/lib/python-support/python2.5/conduit/Synchronization.py", line 41 in put_data
    sinkDataLUID)
  • File "/usr/lib/conduit/modules/GoogleModule/GoogleModule.py", line 972 in put
    raise Exceptions.SyncronizeError("Google contacts upload error.")
SyncronizeError: Google contacts upload error.
 (Synchronization.py:334)
[Syncronization      ][DEBUG  ] 2WAY PUT: Evolution Contacts (pas-id-488003810000006F) -----> Google Contacts (Synchronization.py:568)
[datatypes.DataType  ][DEBUG  ] Getting Rid for pas-id-488003810000006F (DataType.py:151)
[TypeConverter       ][DEBUG  ] Convert contact -> contact using [('contact', 'contact', {})] (TypeConverter.py:210)
[TypeConverter       ][DEBUG  ] Skipping contact -> contact (TypeConverter.py:169)
[Syncronization      ][INFO   ] Putting data pas-id-488003810000006F --> None into ContactsTwoWay-hallettj@gmail.com (Synchronization.py:37)
[modules.Google      ][INFO   ] Could not create google contact from conduit contact (GoogleModule.py:869)


And at the end of the output I see this:

SyncronizeError: Google contacts upload error.
 (Synchronization.py:334)
[Syncronization      ][DEBUG  ] 2WAY PUT: Evolution Contacts (pas-id-46AA969600000000) -----> Google Contacts (Synchronization.py:568)
[datatypes.DataType  ][DEBUG  ] Getting Rid for pas-id-46AA969600000000 (DataType.py:151)
[TypeConverter       ][DEBUG  ] Convert contact -> contact using [('contact', 'contact', {})] (TypeConverter.py:210)
[TypeConverter       ][DEBUG  ] Skipping contact -> contact (TypeConverter.py:169)
[Syncronization      ][INFO   ] Putting data pas-id-46AA969600000000 --> None into ContactsTwoWay-hallettj@gmail.com (Synchronization.py:37)
[modules.Google      ][DEBUG  ] Adding new email address hallettj@gmail.com [] (GoogleModule.py:832)
[modules.Google      ][DEBUG  ] Adding new email address hallettj@gmail.com [] (GoogleModule.py:832)
[modules.Google      ][WARNING] FIXME: FIND THE OLD CONTACT BY EMAIL, GET IT, AND RAISE A CONFLICT EXCEPTION (GoogleModule.py:878)
[Syncronization      ][CRITICAL] UNKNOWN SYNCHRONIZATION ERROR
Traceback (most recent call last):
  File "/var/lib/python-support/python2.5/conduit/Synchronization.py", line 732, in run
    self.two_way_sync(self.source, sink)
  File "/var/lib/python-support/python2.5/conduit/Synchronization.py", line 571, in two_way_sync
    self._put_data(sourcedp, sinkdp, data, dataRid)
  File "/var/lib/python-support/python2.5/conduit/Synchronization.py", line 341, in _put_data
    assert(err.fromData == sourceData)
AssertionError
 (Synchronization.py:743)


Could this have something to do with Google's recent change to its Contacts organization? That is, the change that split contacts into My Contacts and Suggested Contacts?

I am also using version 0.3.12 on Ubuntu Hardy
Comment 2 Roumano 2008-09-03 10:18:04 UTC
I also can't upload all my contact from evolution to google contact :

[Syncronization      ][DEBUG  ] EvoContactTwoWay-file:///homelinux/ci020025/.evolution/addressbook/local/1202228730.15262.0@sogeti015 Changes: New 161 items
[Syncronization      ][DEBUG  ] EvoContactTwoWay-file:///homelinux/ci020025/.evolution/addressbook/local/1202228730.15262.0@sogeti015 Changes: Modified 0 items
[] (Synchronization.py:242)
[Syncronization      ][DEBUG  ] EvoContactTwoWay-file:///homelinux/ci020025/.evolution/addressbook/local/1202228730.15262.0@sogeti015 Changes: Deleted 0 items
[] (Synchronization.py:243)

** (conduit.real:29369): WARNING **: error 9 getting card: EBookStatus returned 9

[Syncronization      ][CRITICAL] UNKNOWN SYNCHRONIZATION ERROR
Traceback (most recent call last):
  • File "/work/perso/conduit/1716-bis/conduit/Synchronization.py", line 737 in run
    self.one_way_sync(self.source, sink)
  • File "/work/perso/conduit/1716-bis/conduit/Synchronization.py", line 487 in one_way_sync
    data = self._get_data(source, sink, i)
  • File "/work/perso/conduit/1716-bis/conduit/Synchronization.py", line 317 in _get_data
    data = source.module.get(uid)
  • File "/work/perso/conduit/1716-bis/conduit/modules/EvolutionModule/EvolutionModule.py", line 64 in get
    return self._get_object(LUID)
  • File "/work/perso/conduit/1716-bis/conduit/modules/EvolutionModule/EvolutionModule.py", line 165 in _get_object
    contact.set_from_vcard_string(obj.get_vcard_string())
AttributeError: 'NoneType' object has no attribute 'get_vcard_string'
 (Synchronization.py:745)


It also normal to see : "synchronized OK" in the canvas with this error ( openinig a other bug ? )
Comment 3 Andrew Stormont 2009-01-16 19:06:29 UTC
I can confirm this on the latest SVN (0.3.15).

I'm running Fedora 10 64-bit and using the python-evolution that was included in gnome-python2-evolution from the main repos.
Comment 4 Michael 2009-03-13 18:20:38 UTC
Google forces primary email addresses to be unique so if for instance you have two contacts with the same email gdata will throw an exception on adding the second contact.

The gdata api doesn't allow you to search for a contact by email so it isn't trivial to find the conflicting entry.

http://code.google.com/p/gdata-issues/issues/detail?id=505
Comment 5 Michael 2009-03-13 19:28:00 UTC
Created attachment 130598 [details] [review]
Add lookup of id's by email address patch

This is a patch to correctly raise conflict errors when gmail already has a contact with the same email address.

It might need some more work to improve the conflict resolution and I think updating contacts might not work.

The patch should apply against SVN head.
Comment 6 André Klapper 2018-07-01 09:06:40 UTC
Conduit is not under active development anymore, has not seen code changes for eight years, and saw its last tarball release in 2010.
Its codebase has been archived: https://gitlab.gnome.org/Archive/conduit/commits/master

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this ticket (or rather transfer the project to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the responsibility for active development again.