Ticket #434 (assigned defect)

Opened 7 years ago

Last modified 4 years ago

evolution2 plugin hangs

Reported by: darkeye Owned by: pmarat
Priority: normal Milestone:
Component: Plugin: evolution Version: 0.21
Severity: blocker Keywords:
Cc: darkeye@…

Description

I'm trying to sync between a SyncML-enabled cell phone and evolution 2. It seems all is going well during the sync, but at the very end, the process just hangs. There's no CPU load at that time, so it seem it locks up somewhere. if I replace the evolution plugin with a file plugin, all works fine - so the issue will be probably with evolution.

I'm using libopensync 0.21 on Gentoo Linux.

here's the very end of mysynctool's output:

Sent an entry pas-id-45D809AA000001BE of size 123 to member 1 (evo2-sync). Changetype ADDED
Sent an entry pas-id-45D809AA000001BF of size 103 to member 1 (evo2-sync). Changetype ADDED

and that's it. here's the sync group configuration:

$ msynctool --showgroup "keitai denwa"
Groupname: keitai denwa
Member 1: evo2-sync
        Configuration : <config>
  <address_path>default</address_path>
  <calendar_path>default</calendar_path>
  <tasks_path>default</tasks_path>
</config>

Member 2: syncml-obex-client
        Configuration : <?xml version="1.0"?>
<config>
  <!-- (Only for blue) The bluetooth address if the bluetooth mode is selected -->
  <bluetooth_address>00:12:D1:A8:27:18</bluetooth_address>
  
  <!-- (Only for blue) The bluetooth channel to use (usualy the 11) [x] -->
  <bluetooth_channel>10</bluetooth_channel>
  
  <!-- (Only for USB) The usb interface number of the SYNCML-SYNC target. use syncml-obex-client -u (as root!) to find it. -->
  <interface>0</interface>
  
  <!-- The string that the plugin will use to identify itself. Some devices need a special string here. -->
  <identifier>PC Suite</identifier>
  
  <!-- The syncml version to use: 0 for 1.0, 1 for 1.1 and 2 for 1.2 -->
  <version>1</version>
  
  <!-- if the plugin should use wbxml -->
  <wbxml>1</wbxml>
  
  <!-- The username to use. Leave empty to not require a username -->
  <username></username>
  
  <!-- the password for the username -->
  <password></password>
  
  <!-- sets the connection type to use. 5 means obex over usb, 2 means obex over bluetooth -->
  <type>2</type>
  
  <!-- If wbxml is enabled, defines wether the wbxml should use string tables -->
  <usestringtable>1</usestringtable>
  
  <!-- Never send ADD command, but send REPLACE (not needed normally) -->
  <onlyreplace>0</onlyreplace>
  
  <!-- Sets the maximum allowed size in bytes of incoming messages (some device need this option set). Example: 10000 -->
  <recvLimit>0</recvLimit>
  
  <maxObjSize>0</maxObjSize>
  
  <!-- The name of the contacts db. Must be the same as the phones sends -->
  <contact_db>Contacts</contact_db>
  
  <!-- The name of the calendar db. Must be the same as the phones sends -->
  <calendar_db>Calendar</calendar_db>
  
  <!-- The name of the note db. Must be the same as the phones sends -->
  <note_db>Notes</note_db>
</config>

Attachments

synclogz.tar.bz2 (2.7 MB) - added by darkeye 7 years ago.
tarball of trace logs

Change History

comment:1 Changed 7 years ago by Angus

  • Severity changed from normal to blocker

The evolution plugin hangs while syncing with opie-plugin as well.

comment:2 Changed 7 years ago by Angus

After more investigation its not the evo2 plugin that hangs its the opie plugin.

comment:3 Changed 7 years ago by darkeye

forgive my ignorance, but is the opie plugin part of the evo2 plugin? or part of the syncml-obex-client plugin? (there are the two plugin I've used when encountering this hang)

in any case, is a fix expected any time soon? would there be a workaround even?

comment:4 Changed 7 years ago by richardcookson

I have exactly the same problem on Ubuntu, libopensync 0.22. The phone I'm using is a Nokia E61. The plugins I'm aware of using are evo2 and syncml-obex-client.

comment:5 Changed 7 years ago by darkeye

it would be so nice if this was fixed - currently this really is a showstopper :(

comment:6 Changed 7 years ago by pmarat

  • Owner changed from abauer to pmarat
  • Status changed from new to assigned
  • Milestone set to 0.22

could you provide traces?

comment:7 Changed 7 years ago by darkeye

what traces are you thinking of? strace output?

comment:8 Changed 7 years ago by pmarat

no ... i mean opensync traces like:

export OSYNC_TRACE=/path/to/trace

comment:9 Changed 7 years ago by darkeye

excuse me my not knowing, but I don't have a trace program as part of msynctool:

# equery files msynctool | grep bin
/usr/bin
/usr/bin/convcard
/usr/bin/convtest
/usr/bin/msynctool
# equery files app-pda/libopensync | grep bin
/usr/bin
/usr/bin/osyncbinary
/usr/bin/osyncdump
/usr/bin/osyncplugin
/usr/bin/osyncstress
/usr/bin/osynctest

can you be a bit more specific on how to generate the trace you need?

comment:10 Changed 7 years ago by pmarat

comment:11 Changed 7 years ago by darkeye

hm, I'm using msynctool, and that doesn't seem to honor these environemnt variables.. can I generate traces with msynctool as well somehow?

comment:12 Changed 7 years ago by darkeye

strange enough, the manual for msynctool sais that it would take the OSYNC_TRACE environment variable into consideration - but seemingly it doesn't, or the tool hangs before any of the traces would be created:

$ echo $OSYNC_TRACE
/home/maroy/tmp
$ ls $OSYNC_TRACE
$ msynctool --sync "keitai denwa" --conflict 2
...
Member 2 of type syncml-obex-client just sent all changes
All clients sent changes or error
Conflict for Mapping 0x2aaaac0d3250: Overwriting conflict
Conflict for Mapping 0x2aaaac2ec860: Overwriting conflict
Conflict for Mapping 0x2aaaac2ed4a0: Overwriting conflict
Conflict for Mapping 0x2aaaac2ee8e0: Overwriting conflict
All conflicts have been reported

then the thing hangs, as originally described in the bug-report, only CTRL-C helps. afterwards, there are no trace files in the OSYNC_TRACE directory:

$ ls -la $OSYNC_TRACE
total 2
drwxr-xr-x  2 maroy maroy   48 2007-03-22 12:11 .
drwxr-xr-x 62 maroy maroy 2400 2007-03-22 10:28 ..

comment:13 Changed 7 years ago by cstender

It seems that you have built opensync without tracing support. I looked at http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-pda/libopensync/libopensync-0.21.ebuild?rev=1.1&view=markup and found "$(use_enable debug tracing) \" so I think you have to activate tracing.

comment:14 Changed 7 years ago by Peper

You need to enable debug useflag.

Changed 7 years ago by darkeye

tarball of trace logs

comment:15 Changed 7 years ago by darkeye

thanks for the tip - I re-emerged with the debug flag, and now it produces trace output. I tried to attach it to this ticket, but even a bzip'd tarball is too large. anyway, you can download the tarball of the logs from here: http://tyrell.hu/~darkeye/synclogs.tar.bz2

just having a quick check for errors, I got a _lot_ of these, from my group 1 thread (which is the evolution plugin thread):

[1174737723.274688]             <--- ERROR --- osync_db_remove_changelog: Unable to remove log! no such column: objtype

and later on, there's this:

[1174737749.146342]                     <--- ERROR --- osync_conv_find_path_fn: FALSE
[1174737749.146360]                 <--- ERROR --- osync_conv_convert_fn: (null)
[1174737749.146382]             <--- ERROR --- osync_client_commit_change: (null)
[1174737749.146400]         <<<<<<<  osengine_mappingentry_decider
[1174737749.146417]     <<<<<<<  engine_message_handler

comment:16 Changed 7 years ago by pmarat

it seams that you have used a pre 0.21 sync group with 0.21> opensync.

In 0.21 there was an incompatible DB change that adds objtype (NOT-UNIQUE-UID fix)

please cleanup your syncgroup http://www.opensync.org/wiki/FAQ#HowdoIcleanupasyncgroupfortesting or create a new syncgroup and test again

comment:17 Changed 7 years ago by darkeye

started with rm -rf ~/.opensync , re-created the groups, and I sort of get the same, without some of the error messages.

the output of msynctool is:

...
Received an entry 554 with data of size 8 from member 2 (syncml-obex-client). Changetype ADDED
Received an entry 555 with data of size 8 from member 2 (syncml-obex-client). Changetype ADDED
Received an entry 4 with data of size 8 from member 2 (syncml-obex-client). Changetype ADDED
Member 2 of type syncml-obex-client just sent all changes
All clients sent changes or error
Conflict for Mapping 0x163e6f0: Overwriting conflict
Conflict for Mapping 0x1645920: Overwriting conflict
Conflict for Mapping 0x171dc20: Overwriting conflict
Conflict for Mapping 0x171e010: Overwriting conflict
Conflict for Mapping 0x171e400: Overwriting conflict
Conflict for Mapping 0x171e7f0: Overwriting conflict
Conflict for Mapping 0x171ebe0: Overwriting conflict
All conflicts have been reported
Sent an entry pas-id-45D7540500000181 of size 206 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry pas-id-45D809A900000184 of size 201 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry 20070322T161020Z-22637-448-1-2@tomodachi of size 248 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry 20070217T191410Z-1760-448-1-0@tomodachi of size 234 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry 20070322T161020Z-22637-448-1-1@tomodachi of size 226 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry 20070324T120024Z-7996-448-1-0@tomodachi of size 229 to member 1 (evo2-sync). Changetype MODIFIED
Sent an entry 20070322T161020Z-22637-448-1-0@tomodachi of size 255 to member 1 (evo2-sync). Changetype MODIFIED

then it stops (no CPU load anymore, but does not return)

I get the following error in one of the log files:

[1174741332.182745]                         <<<<<<<  get_next_vertice_neighbour: None found
[1174741332.182765]                         [OSCONV] FULL DEBUG: Next vertice: file.
[1174741332.182784]                         [OSCONV] FULL DEBUG: Looking at file's neighbours.
[1174741332.182804]                         >>>>>>>  get_next_vertice_neighbour(0x50c010, 0x5392210, 0x1100cb0:file)
[1174741332.182823]                             A desencapsulator to plain would be called, but we can't because the data on this vertice wasn't converted
[1174741332.182883]                         <<<<<<<  get_next_vertice_neighbour: None found
[1174741332.182903]                     <--- ERROR --- osync_conv_find_path_fn: FALSE
[1174741332.182922]                 <--- ERROR --- osync_conv_convert_fn: (null)
[1174741332.182947]             <--- ERROR --- osync_client_commit_change: (null)
[1174741332.182965]         <<<<<<<  osengine_mappingentry_decider
[1174741332.182983]     <<<<<<<  engine_message_handler

comment:18 Changed 7 years ago by pmarat

  • Milestone 0.22 deleted

comment:19 Changed 7 years ago by darkeye

oh, does this mean this bug won't be fixed anytime soon? :(

comment:20 Changed 7 years ago by pmarat

  • Milestone set to 0.23

at least not for 0.22 ;-(

could you please prove new traces ... the old one points to the missing database cleanup

comment:21 Changed 7 years ago by darkeye

  • Milestone 0.23 deleted

sure, I updated it...

if there's any other way for me to provide information, please let me know..

comment:22 Changed 7 years ago by darkeye

  • Milestone set to 0.23

oops, I inadvertantly deleted milestone 0.23

comment:23 Changed 7 years ago by dgollub

  • Milestone 0.23 deleted

Milestone 0.23 deleted

comment:24 Changed 7 years ago by bornmw

Would like to report exactly the same issue. It happens both with sunbird and evo2 plugins 0.22. They come with Fedora 8. My phone is Nokia N70. I tried to compile 0.34, but after a couple of cmake errors I gave up. Please, make the software you produce usable.

comment:25 Changed 7 years ago by bornmw

I've just found a workaround here: http://geektalk.andreat.de/2006/11/how-to-syncronize-nokia-n70-palm.html

Evolution sync works when started like this: msynctool --sync evo2 --filter-objtype note --filter-objtype todo

But it doesn't help the sunbird.

comment:26 Changed 7 years ago by bornmw

Actually evo works with msynctool --sync evo2 --filter-objtype note

comment:27 Changed 6 years ago by smoku

This is definetely related to Notes synchronisation. If I configure the note_db in syncml-obex-client the synchronization hangs. If not configured or --filter-objtype note option for msynctool used, it finishes OK.

The notes are fetched ok (on the phone display), but:

Conflict for Mapping 0x8104330: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x8145f08: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x816c960: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x819a938: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x81c5bc0: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x81e0e30: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x81f8ab0: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x820cfb8: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x820d748: Newest entry used
Conflict not resolved: No revision function set
Conflict for Mapping 0x822c1b0: Newest entry used
Conflict not resolved: No revision function set
All conflicts have been reported

suggests that one of the participating plugins have problems with conflict resolution "No revision function set". I guess it's the evo2-sync plugin:

smoku@wing:~$ msynctool --showgroup nokia
Groupname: nokia
Member 1: evo2-sync
	Configuration : <config>
<address_path>default</address_path>
<calendar_path>default</calendar_path>
<tasks_path>default</tasks_path>
</config>

Member 2: syncml-obex-client
[...]

The evo2-sync has only address, calendar and tasks paths configurable. There is no notes_path, so I guess Notes synchronization is just unimplemented in Evolution2 plugin.

comment:28 Changed 6 years ago by smoku

BTW, I have:

smoku@wing:~$ msynctool --version
This is msynctool version "0.22"
using OpenSync version "0.22"

comment:29 Changed 4 years ago by sim

decoration Changed 1 year ago by admin

bathtub Changed 1 year ago by admin

solar system Changed 1 year ago by admin

stair parts Changed 1 year ago by admin

solar supply Changed 1 year ago by admin

Note: See TracTickets for help on using tickets.