Хм. Интересно. Давайте думать вместе.
Во-первых, вопрос. Ошибка в логе sync-engine появилась после попытки просмотреть партнёрства или сама по себе. Тут просто вот какое дело. Эти ошибки мало связаны.
Traceback (most recent call last):
File "./list_partnerships.py", line 9, in <module>
engine = dbus.Interface(dbus.SessionBus().get_object(DBUS_SYNCENGINE_BUSNAME, DBUS_SYNCENGINE_OBJPATH), DBUS_SYNCENGINE_BUSNAME)
File "/var/lib/python-support/python2.5/dbus/bus.py", line 240, in get_object
follow_name_owner_changes=follow_name_owner_changes)
File "/var/lib/python-support/python2.5/dbus/proxies.py", line 236, in __init__
self._named_service = conn.activate_name_owner(bus_name)
File "/var/lib/python-support/python2.5/dbus/bus.py", line 179, in activate_name_owner
self.start_service_by_name(bus_name)
File "/var/lib/python-support/python2.5/dbus/bus.py", line 277, in start_service_by_name
'su', (bus_name, flags)))
File "/var/lib/python-support/python2.5/dbus/connection.py", line 603, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.synce.SyncEngine was not provided by any .service files
Эта ошибка свидетельствует о том, что он вообще не достучался до sync-engine. Одной из самых вероятных причин может быть то, что они запущены от разных пользователей, например sync-engine запущен от рута, а команду пишите от своего текущего юзера. От рута надо пускать только odccm. Однако учитывая, что в sync-engine тоже вывалилась ошибка, рискну предположить, что после неё sync-engine свалился. Это тоже может быть обьяснением, почему list-partnership.py не достучался.
Расскажу немного о том, как работает sync-engine. Вообще-то это моя ошибка, что я так написал. Просто из мануала можно сделать вывод, что основную работу делает MultiSync, а всё остальное - просто цепочка демонов, которые постепенно передают данные между Синхронизатором и устройством. Это не совсем так. В первую очередь потому, что sync-engine не просто "proxy" между мультисинковским плагом и демоном WM5 устройства. Тут получается двойная синхронизация исключительно потому, что разработчики ещё не дописали или забили на механизм сохранения данных в те или иные форматы. Например он не умеет сохранять данные прочитанные с PDA в ресурсы KDE. Короче, когда вы запускаете Sync-engine он вычитывает все изменения с устройства и обновляет свои данные. Для PDA синхронизация происходит именно в этом месте, а не тогда, когда вы запустите MultiSync. И когда вы на PDA нажмёте кнопку "Синхронизировать" оно таки синхронизируется, побежит прогресс бар и в конце, напишет, что синхронизация окончена, хотя в тот же KDE_PIM эти данные не попадут, они останутся достоянием Sync-Engine.
Когда же вы потом запускаете вручную MultiSync он запрашивает данные через synce-plugin у sync-engine, который просто отдаёт свои данные. На подключенное устройство он уже не лезет. Потом, если изменений со стороны PC нет, сеанс благополучно закрывается и PDA вообще никто не трогает. В противном случае, если Мультисинку приспичит что-то записать или изменить в PDA, sync-engine инициирует новую синхронизацию с PDA и просунет в него всё, что хочет.
В вашем случае, похоже, на то, что беда происходит тогда, когда sync-engine пытается сделать свою внутреннюю синхронизацию. Возможно на этапе подбора партнёрства, возможно позже, когда на основании этого партнёрства начинается "вытаскивание" инфы. Все дороги видут к партнёрству.
...
2007-11-08 17:50:09,431 DEBUG engine.partnerships.Partnerships : _read_device: read source GUID = {7453FEF8-E117-4EB3-8393-7C13F08519D4}, Hostname = ANTONIO, Description = ПК с Windows
2007-11-08 17:50:09,432 DEBUG engine.partnerships.Partnerships : _read_device: source matches partnerhip from registry. Initializing partnership
2007-11-08 17:50:09,432 DEBUG engine.partnerships.Partnerships : _read_device: querying partnerhip synchronization items (providers)
2007-11-08 17:50:09,432 DEBUG engine.partnerships.Partnerships : _read_device: found provider Календарь
2007-11-08 17:50:09,432 DEBUG engine.partnerships.Partnerships : _read_device: provider is enabled
2007-11-08 17:50:09,433 DEBUG engine.partnerships.Partnerships : _read_device: provider ID is 0
2007-11-08 17:50:09,433 DEBUG engine.partnerships.Partnerships : _read_device: found provider Задачи
2007-11-08 17:50:09,433 DEBUG engine.partnerships.Partnerships : _read_device: provider is enabled
2007-11-08 17:50:09,434 DEBUG engine.partnerships.Partnerships : _read_device: provider ID is 7
2007-11-08 17:50:09,435 DEBUG engine.partnerships.Partnerships : _read_device: found provider Media
2007-11-08 17:50:09,435 DEBUG engine.partnerships.Partnerships : _read_device: found provider Microsoft Office OneNote
2007-11-08 17:50:09,435 DEBUG engine.partnerships.Partnerships : _read_device: provider is enabled
Traceback (most recent call last):
File "./sync-engine", line 57, in <module>
engine = SyncEngine()
File "/home/anton/SynCE/trunk/sync-engine/SyncEngine/kernel.py", line 74, in __init__
self._device_connected_cb(obj_paths[0])
File "/home/anton/SynCE/trunk/sync-engine/SyncEngine/kernel.py", line 93, in _device_connected_cb
self.OnConnect()
File "/home/anton/SynCE/trunk/sync-engine/SyncEngine/kernel.py", line 174, in OnConnect
self.partnerships = Partnerships(self)
File "/home/anton/SynCE/trunk/sync-engine/SyncEngine/partnerships.py", line 45, in __init__
self._read_device()
File "/home/anton/SynCE/trunk/sync-engine/SyncEngine/partnerships.py", line 138, in _read_device
% (provider.type, provider["Name"]))
ValueError: Unknown GUID "{90AA7488-C9D8-165D-BA88-F33D8B13CB76}" for provider with name "Microsoft Office OneNote"
Первое, что бросается в глаза, это надпись Description = ПК с Windows в первой строчке. Того, что перед ней не видно, но подозреваю, что случилась сл. хрень. Вы синхронизировали своего зверька с той-же самой машиной, но из под Windows. Имя хоста совпадает и очень может быть, что sync-engine принял виндовое партнёрство за своё и принялся его использовать. Эту проблему прийдётся решать в любом случае, т.к. пользоваться одним партнёрством для разных объёктов синхронизации нельзя. Другое дело, что это не должно было уложить Sync-Engine. В лучшем случае, вы не должны были бы вначале вообще ничего заметить, а в худшем, у вас бы пропали контакты на PDA. Тут я теряюсь в догадках. Возможно, что Sync-Engine не раздуплилась, что "Задачи" == "Tasks", а в вашем партнёрстве написано именно по-русски. Возможно в партнёрстве упомянута синхронизация заметок. ( Notes ) Как я понял, sync-engine их напрямую ещё не понимает. Хотя, опять же, падать не должен, он их знает, и игнорирует.
Вот ещё заметил:
_read_device: found provider Microsoft Office OneNote
Это, помоему, не стандартные заметки. Т.е. вроде бы так и назывались бы "Заметки", как и называются у вас задачи и календарь. Возможно вы из под Windows использовали какое-то дополнение или плагин которое дописало такое недоразумение в партнёрство.
В любом случае sync-engine надо отваживать от этого виндового партнёрства и копать надо в этом направлении. Проще всего удалить виндовое партнёрство с PDA средствами самого PDA. Его ActiveSync это умеет. Учтите, что в Windows после этого у вас синхронизация слетит и её надо будет настраивать заново. Будте готовы к этому геморою. Если вам нужно сохранить возможность синхронизироваться с Windows надо придумать что-то оригинальнее. Например сменить имя хоста. Возможно этого будет достаточно, чтоб sync-engine не путал партнёрства.