[sync] SyncML errors with Synthesis client on Treo 650

Ben Klang ben at alkaloid.net
Wed Mar 14 14:28:54 UTC 2007


Hello List,

Last night I updated my Horde install to the latest CVS HEAD.  I also  
downloaded the newest Synthesis.ch SyncML client 3.0.  Unfortunately,  
I ran into some problems rying to sync.

First, I configured it and tried to do an initial sync.  It looked  
like it was going to work, I saw the numbers for each category  
incrementing as they were sent and received from the server.   
However, for some unknown reason (this _is_ the cellular network  
after all...) the sync died abruptly.  Upon attempting to restart the  
sync, the client appeared to enter an infinite loop of "Waiting" ->  
"Receiving" -> "Waiting" and no message counts appeared.  Thinking  
the broken sync had left corrupt data, I went into  MySQL and flushed  
the horde_histories, horde_log, and horde_syncml_map tables.   
Unfortunately, despite repeated attempts, I never could get it to  
count the objects from SyncML again.

This morning I had a closer look and this time I noticed a particular  
message logged in the database:

| 418041 | 2007-03-14 09:07:53 | HORDE |        4 |[horde] SyncML:  
Caught output: <br /> <b>Notice</b>:  Undefined variable:  synctype  
in <b>/srv/vhost/users/bklang/sites/hordehead/framework/SyncML/SyncML/ 
Command/Alert.php</b> on line <b>131</b><br /> <br /> <b>Notice</b>:   
Undefined variable:  synctype in <b>/srv/vhost/users/bklang/sites/ 
hordehead/framework/SyncML/SyncML/Command/Alert.php</b> on line  
<b>132</b><br /> <br /> <b>Notice</b>:  Undefined variable:  synctype  
in <b>/srv/vhost/users/bklang/sites/hordehead/framework/SyncML/SyncML/ 
Command/Alert.php</b> on line <b>133</b> (...)

This text was repeated a few tens of times, but only one such message  
was logged into the database.

After digging a bit more, I found that the value of $this->_alert was  
225.  From what I can tell, this does not match any defined contstant  
value the SyncML code was looking for.  This resulted in the case  
statement above the lines mentioned in the error message not setting  
the $synctype variable.

I have a tcpdump-format capture of a broken session and I can  
reproduce the problem.  One other interesting thing to note:  When I  
configured the Synthesis client on my Treo to use SyncML version 1.1  
(instead of auto-detecting version 1.2) I was apparently able to get  
the sync to go through to success.

Am I missing something?  It appears that the Horde SyncML supports  
1.2, so I'm supposing this is a bug in the code.  Please let me know  
what other information may be useful to determine the problem.

Thanks,
/BAK/
-- 
Ben Klang
Alkaloid Networks
ben at alkaloid.net
404.475.4850
http://projects.alkaloid.net




More information about the sync mailing list