[sync] Tasks duplicated if marked "completed" on client

Jan Schneider jan at horde.org
Sun May 3 11:20:48 UTC 2009


Zitat von Marcel Samek <msamek at machinimamagic.com>:

> I use the syncml client for the iphone and use it to sync my  
> calendar  entries and my task list.
>
> I have noticed that there is a bug if I mark a task as "completed"  
> on  the client and then sync. After the sync operation, the task on  
> the  server ends up being duplicated, with one copy marked as  
> completed and  the other not.
>
> I am running Horde 3.3.4-RC1 and Nag 2.3.1
>
> I emptied the contents of my /tmp/sync folder, marked a task as   
> complete on the client, then performed a sync. The resulting  
> contents  of the /tmp/sync folder are in the attached tar file.
>
> Please let me know if is any other information to attach.

These are the important lines from your sync logs:

DEBUG:  SQL Query by SyncML_Backend_Horde::_getSuid(): SELECT  
syncml_suid FROM horde_syncml_map WHERE syncml_syncpartner = ? AND  
syncml_db = ? AND syncml_uid = ? AND syncml_cuid = ?, values:  
74471d58d4faec74c8ae1addb338689e32244399, tasks, msamek, 44
DEBUG:  No map entry found for client id 44 replacing on server
DEBUG:  Added to server db tasks client id 44 -> server id  
20090501115228.66265hzh2y7kpkow at webmail.machinimamagic.com
DEBUG:  SQL Query by SyncML_Backend_Horde::_getSuid(): SELECT  
syncml_suid FROM horde_syncml_map WHERE syncml_syncpartner = ? AND  
syncml_db = ? AND syncml_uid = ? AND syncml_cuid = ?, values:  
74471d58d4faec74c8ae1addb338689e32244399, tasks, msamek, 44
DEBUG:  SQL Query by SyncML_Backend_Horde::createUidMap(): INSERT INTO  
horde_syncml_map (syncml_suid, syncml_timestamp, syncml_syncpartner,  
syncml_db, syncml_uid, syncml_cuid) VALUES (?, ?, ?, ?, ?, ?), values:  
20090501115228.66265hzh2y7kpkow at webmail.machinimamagic.com,  
1241203948, 74471d58d4faec74c8ae1addb338689e32244399, tasks, msamek, 44
DEBUG:  Added instead of replaced entry  
20090501115228.66265hzh2y7kpkow at webmail.machinimamagic.com

The id that the client is sending to the server (44) is not found in  
the server's map of earlier syncs. The question is whether this the  
client's fault, sending a wrong (new) id, or the server's fault,  
either not storing the correct id during the first sync, or not being  
able to retrieve the id during the second sync.

To test this, create a new task (either on the client or the server),  
sync, take a look at log.txt and see which id's are being used by the  
client and the server. Then see if those ids are correctly stored in  
the horde_syncml_map table.

If they are, then complete the task, do another sync, and take again a  
look at log.txt whether the same ids are being used.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the sync mailing list