From: Robert H. <ope...@hu...> - 2006-11-01 15:13:38
Attachments:
opensync-calendar-fails.tar.bz2
|
Hello list, I want to synchronize my phone's calendar with the PC, using syncml-obex-client and file-sync. The phone is a Sony-Ericsson V600i. This is the sync group: $ msynctool --showgroup file-phone Groupname: file-phone Member 1: syncml-obex-client Configuration : <config><bluetooth_address>00:12:EE:9F:40:E8</bluetooth_address><bluetooth_channel>7</bluetooth_channel><interface>0</interface><identifier></identifier><version>1</version><wbxml>1</wbxml><username></username><password></password><type>2</type><usestringtable>0</usestringtable><onlyreplace>0</onlyreplace><recvLimit>0</recvLimit><maxObjSize>0</maxObjSize><contact_db>addressbook</contact_db><calendar_db>calendar</calendar_db><note_db>tasks</note_db></config> Member 2: file-sync Configuration : <config><path>/home/robert/opensync-test/file-phone</path><recursive>FALSE</recursive></config> The file-sync path is empty and there's one entry in the phone's calendar. Unfortunately, the synchronization fails with an error message "Sitzung ist fehlgeschlagen" ("Session failed") on the phone and this console output (I have to abort msynctool with Ctrl+C as it does not exit by itself): $ msynctool --sync file-phone --filter-objtype note --filter-objtype todo --filter-objtype contact Synchronizing group "file-phone" The previous synchronization was unclean. Slow-syncing Member 2 of type file-sync just connected received event dsession Member 1 of type syncml-obex-client just connected All clients connected or error Member 2 of type file-sync just sent all changes Received an reply to our Alert Member 1 of type syncml-obex-client just sent all changes All clients sent changes or error Member 2 of type file-sync committed all changes. Member 2 of type file-sync just disconnected [Ctrl+C] Trace files are attached. Software versions I use: - opensync (svn, 2006-10-29) - file-sync (svn, 2006-10-29) - syncml-plugin (svn, 2006-10-29) - multisync-cli (svn, 2006-10-29) - libsyncml (svn, 2006-10-29) - libsoup (cvs, 2006-10-29) - wbxml2-0.9.0, patched with wbxml2-0.9.0.patch - dev-libs/openobex-1.3 Synchronizing the address book works almost perfectly, using this command line (it works with file-sync instead of kdepim-sync, too): $ msynctool --sync kde-phone --filter-objtype note --filter-objtype todo --filter-objtype event Regards, Robert |
From: Robert H. <ope...@hu...> - 2006-11-04 13:36:00
|
I wrote: > The file-sync path is empty and there's one entry in the phone's calendar. > Unfortunately, the synchronization fails with an error message "Sitzung ist > fehlgeschlagen" ("Session failed") on the phone and this console output (I > have to abort msynctool with Ctrl+C as it does not exit by itself): I solved this problem by changing the calendar_db from "calendar" to the not so obvious "addressbook". Seems like this phone is using a database called "addressbook" for both contacts and events. Of course, Opensync should not hang when an error like this occurred. And it should print a useful error message that points to the problem. Right now, there are ERRORs in the trace files, but the console output shows nothing. Maybe there's some error condition checking missing in the code? Sincerely, Robert P.S.: Does anyone know how to retrieve the list of databases from a SyncML server, or if it's possible at all? |
From: Christopher S. <ope...@ch...> - 2006-11-04 14:58:19
|
Hi, Am Samstag, 4. November 2006 14:35 schrieb Robert Huitl: > I wrote: > > The file-sync path is empty and there's one entry in the phone's > > calendar. Unfortunately, the synchronization fails with an error > > message "Sitzung ist fehlgeschlagen" ("Session failed") on the > > phone and this console output (I have to abort msynctool with > > Ctrl+C as it does not exit by itself): > > I solved this problem by changing the calendar_db from "calendar" to > the not so obvious "addressbook". Seems like this phone is using a > database called "addressbook" for both contacts and events. This works for me too, but only if I use --filter-objtype contact. Then I get events and notes. Can you reproduce this? I'm currently sniffing traffic from and to the SE K750i. > Of course, Opensync should not hang when an error like this occurred. > And it should print a useful error message that points to the > problem. Right now, there are ERRORs in the trace files, but the > console output shows nothing. Maybe there's some error condition > checking missing in the code? I'll check this next weeks. Best regards Christopher |
From: Robert H. <ope...@hu...> - 2006-11-05 14:59:25
|
Hi Christopher, > > > The file-sync path is empty and there's one entry in the phone's > > > calendar. Unfortunately, the synchronization fails with an error > > > message "Sitzung ist fehlgeschlagen" ("Session failed") on the > > > phone and this console output (I have to abort msynctool with > > > Ctrl+C as it does not exit by itself): > > > > I solved this problem by changing the calendar_db from "calendar" to > > the not so obvious "addressbook". Seems like this phone is using a > > database called "addressbook" for both contacts and events. > > This works for me too, but only if I use --filter-objtype contact. Then > I get events and notes. Can you reproduce this? I'm currently sniffing > traffic from and to the SE K750i. I am successfully synchronizing both contacts (addressbook) and events (agenda) at the same time. Did not try notes and todo so far: $ msynctool --sync kde-phone --filter-objtype note --filter-objtype todo But this does not work immediately for a new setup. When I clear the phones addressbook and calendar and purge the hash map using "osyncdump kde-phone --reset", this command line will make the phone show "Sitzung fehlgeschlagen" immediately (as I described in the first posting of this thread). By trial and error, i found a somewhat odd procedure to get things going: 1. Change the calendar_db to match the contact_db (i.e. "addressbook") 2. Sync. The contacts will be written to the phone, the events will fail with some error 500 3. Change the calendar_db back to "agenda" 4. Sync again. Now events will be written to the phone, and the "Sitzung fehlgeschlagen" error is gone. Can you reproduce this? Sincerely, Robert |
From: Robert H. <ope...@hu...> - 2006-11-04 15:23:55
|
On Saturday 04 November 2006 15:58, Christopher Stender wrote: > > I solved this problem by changing the calendar_db from "calendar" to > > the not so obvious "addressbook". Seems like this phone is using a > > database called "addressbook" for both contacts and events. > > This works for me too, but only if I use --filter-objtype contact. Then > I get events and notes. Can you reproduce this? I'm currently sniffing > traffic from and to the SE K750i. At the moment, I filter all objects but the one type I want to sync (and "data", as it would fail horribly if I filtered this type). I have problems syncing the events, though: "Mapping Write Error: content type was not configured" messages over and over. I'm looking into this at the moment. As soon as it works, I can try if syncing both contacts and events at the same time works. Sincerely, Robert |
From: Daniel G. <dg...@su...> - 2006-11-04 16:45:55
|
On Saturday 04 November 2006 16:23, Robert Huitl wrote: > At the moment, I filter all objects but the one type I want to sync > (and "data", as it would fail horribly if I filtered this type). If you filter out "data" this will act like a wildcard for all object types. > > I have problems syncing the events, though: > "Mapping Write Error: content type was not configured" messages over and > over. I'm looking into this at the moment. As soon as it works, I can try > if syncing both contacts and events at the same time works. Which version of syncml plugin and opensync do you use (if svn .. revision)? We fixed in the svn some problems with the fomrat detectors. But if you use= =20 the latest revision and still have no look i would be fine if you can=20 prepare TRACE files. (BTW: Christopher found out that on his SE K750i the database name for=20 calendar is "AGENDA") best regards, Daniel |
From: Christopher S. <ope...@ch...> - 2006-11-04 16:35:15
|
Hi, Am Samstag, 4. November 2006 15:58 schrieb Christopher Stender: > Hi, > > Am Samstag, 4. November 2006 14:35 schrieb Robert Huitl: > > I wrote: > > > The file-sync path is empty and there's one entry in the phone's > > > calendar. Unfortunately, the synchronization fails with an error > > > message "Sitzung ist fehlgeschlagen" ("Session failed") on the > > > phone and this console output (I have to abort msynctool with > > > Ctrl+C as it does not exit by itself): > > > > I solved this problem by changing the calendar_db from "calendar" > > to the not so obvious "addressbook". Seems like this phone is using > > a database called "addressbook" for both contacts and events. > > This works for me too, but only if I use --filter-objtype contact. > Then I get events and notes. Can you reproduce this? I'm currently > sniffing traffic from and to the SE K750i. I've got it! The event database name is 'agenda'. This config works for me (SE K750i): <config> <bluetooth_address> YOUR MAC!!! </bluetooth_address> <bluetooth_channel> CHANNEL!!! </bluetooth_channel> <interface>0</interface> <identifier></identifier> <version>1</version> <wbxml>1</wbxml> <username></username> <password></password> <type>2</type> <usestringtable>0</usestringtable> <onlyreplace>0</onlyreplace> <recvLimit>0</recvLimit> <maxObjSize>0</maxObjSize> <contact_db>addressbook</contact_db> <calendar_db>agenda</calendar_db> <note_db>notes</note_db> </config> Best regards Christopher |
From: Robert H. <ope...@hu...> - 2006-11-04 17:17:17
|
On Saturday 04 November 2006 17:35, Christopher Stender wrote: > I've got it! The event database name is 'agenda'. Yes, indeed! This works on my Sony Ericsson V600i, too. Thanks to point that out. Sincerely, Robert |
From: Robert H. <ope...@hu...> - 2006-11-04 16:39:56
|
> At the moment, I filter all objects but the one type I want to sync > (and "data", as it would fail horribly if I filtered this type). > > I have problems syncing the events, though: > "Mapping Write Error: content type was not configured" messages over and > over. I'm looking into this at the moment. As soon as it works, I can try > if syncing both contacts and events at the same time works. Okay, I found this one. Opensync was receiving a wrong dsession, indicated by the message (on the console): received contact dsession I do not understand the code well enough to fix this, but it's caused by both contact_db and calendar_db having the same content: "addressbook". I renamed the contact_db to something else (no problem as I'm not syncing it at the moment), and now it picks the correct dsession: received event dsession The trace files (for the case when contact_db and calendar_db were the same) show that it probably only compares the locations, not checking if that location really belongs to the Calendar. >>>>>>> _event_callback(0x80639b0, 1, 0x8067118, (nil), (nil), (nil), 0x805f880) >>>>>>> smlManagerDispatchCommand(0x805f880, 0x80639b0, 0x8067118, 0xb69ceee8) >>>>>>> smlManagerObjectFind(0x805f880, 0x80639b0, 0x8067118) >>>>>>> smlLocationCompare((nil)(null), 0x805fa58(addressbook), (nil) (null), 0x80636c8(addressbook) >>>>>>> normalizeUrl(addressbook) <<<<<<< normalizeUrl: addressbook >>>>>>> normalizeUrl(addressbook) <<<<<<< normalizeUrl: addressbook Comparing addressbook and addressbook <<<<<<< smlLocationCompare: 1 >>>>>>> smlLocationCompare((nil)(null), (nil)(null), (nil)(null), 0x8061960(Calendar)) <<<<<<< smlLocationCompare: No object given: TRUE <<<<<<< smlManagerObjectFind: FOUND: 0x805fac0 Note the line "smlLocationCompare((nil)(null), (nil)(null), (nil)(null), 0x8061960(Calendar))". It's probably trying to make sure that it's the calendar's location, but it's not too successful in doing that... Using the workaround I described above, I was able to sync a dozen events or so with the phone. Until the sync hang once again, with the trace showing: <--- ERROR --- smlWbxmlConvertTo: Parsing of XML Document Failed <--- ERROR --- smlWbxmlAssemblerCheckSize: Parsing of XML Document Failed <--- ERROR --- smlAssemblerCheckSize: Parsing of XML Document Failed <--- ERROR --- smlAssemblerStartCommand: Parsing of XML Document Failed <--- ERROR --- _smlSessionStartCommandInternal: Parsing of XML Document Failed Debugging in progress... ;-) Sincerely, Robert |
From: Robert H. <ope...@hu...> - 2006-11-05 15:07:48
|
On Saturday 04 November 2006 17:38, Robert Huitl wrote: > Using the workaround I described above, I was able to sync a dozen events > or so with the phone. Until the sync hang once again, with the trace > showing: <--- ERROR --- smlWbxmlConvertTo: Parsing of XML Document Failed > <--- ERROR --- smlWbxmlAssemblerCheckSize: Parsing of XML Document Failed > <--- ERROR --- smlAssemblerCheckSize: Parsing of XML Document Failed <--- > ERROR --- smlAssemblerStartCommand: Parsing of XML Document Failed <--- > ERROR --- _smlSessionStartCommandInternal: Parsing of XML Document Failed This was a problem with one event that libexpat failed to parse. Once I deleted it, the errors disappeared and synchronization succeeded. It probably had something to do with a messed-up UTF-8 encoding. Sincerely, Robert |