[sync] [horde] Sync with Funambol

Paul Faure paul.faure at agr.gc.ca
Thu Nov 6 14:24:12 UTC 2008


> > An example of a failed sync map entry (when I created a new contact on
> > the client and tried to sync it to the server):
> >
> > syncml_syncpartner = fol-T05PVFRBNDc2NTA2OmZhdXJlcA==
> > syncml_db = contacts
> > syncml_uid = paul
> > syncml_cuid =
> > 0000000080686E075BD4C7488AD4D1CFE7CA75700700AC094F4F121FB74DAB99B50F115983F900000132119F00005F1403857813194AACFA1F3F566A159400000188CBFD0000
> > syncml_suid = 3e37b9140457c0f37039de9227cb4915
> > syncml_timestamp = 0
> 
> That's a huge client id. Why the heck does it generate such a long id?  
> Anyway, one thing to check would be that there is no overflow  
> somewhere. The columns once used to be smaller IIRC, so make sure that  
> this is the complete client id and that it doesn't get truncated in  
> the database.

About 6 months ago when I started syncing I had to increase the database
field to a varchar of 256. Im running Outlook which stores its contacts
in an exchange environment.

> > Also, I can't find a matching entry in turba_objects where object_uid =
> > 3e37b9140457c0f37039de9227cb4915.
> 
> Yeah, UIDs look different anyway. I sill have no idea where this id is  
> coming from. This rather looks like a contact ID.

My thought was that its a hash of an empty string or simple string.

> > How is the contact ID generated? And with a new contact, who (client or
> > server) is responsible to generate it.
> 
> Both, the contact ID and the UID are generated by Horde when a contact  
> is added from a client. Only the UID is used for synchronization, the  
> ID shouldn't show up anywhere.
> 
> > Im more than willing to debug this one myself, I just need a little bit
> > of background info.
> > In order to setup an LDAP front end to the Horde contact table, I had to
> > create a new field in the turba_objects table called "id" which is
> > simply a unique auto_inc 32 bit integer. OpenLDAP with a DB backend
> > requires this integer field as a unique entry instead of a varchar
> > unique field.
> > This could be the cause of my troubles.
> 
> You didn't mention so far, or I missed that, that you are using LDAP.  
> This might have some influence, though I can't think of one out of my  
> head. But I don't understand from you discription anway, how your  
> setup looks like.

My setup is simple.
Client (Outlook or iPhone) <-> Server (Horde) <-> DB (mysql)

I would imagine this is the most popular setup out there.

In order to make my contacts more accessible, I installed OpenLDAP with
the DB backend. This is a read only LDAP setup, so you can't modify
contacts or add them through LDAP. OpenLDAP simply uses the horde DB to
display the contacts.

Client (Outlook) <- Server (OpenLDAP) <- DB (mysql)

The one change I had to do to the horde env/setup is the addition of the
"id" column in the turba table. This is because the SQL backend for
OpenLDAP requires an INT as the unique key.
I implemented this setup about 6 months ago and it all worked fine until
the recent upgrade.

Could you point me in the direction of where in Horde the UID is
generated? I will add all kinds of debug output and track this one down.

Thanks for your help :)
Paul



More information about the sync mailing list