Hi,
I believe the OpenSync API must support the way the SyncML protocol works.
This means:
1) The pendingLimit should be removed.
As Michael writes, the SyncML protocol groups updates, so there may be
any number of pending updates before a commit can be completed.
(Maybe it would be possible to let the plugin define the pendingLimit
(including setting it to unlimited))?
2) The mapping issue needs to be handled.
The SyncML protocol defines that the mappings are send after all
changes, so the OpenSync API needs to be augmented with a way to handle
this.
/Henrik
Michael Bell wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi,
>
> I would like to remove pendingLimit from OSyncQueue to fix the dead lock
> of ticket #1078. The pendingLimit of the OSyncQueue and the not fully
> independent messages can produced dead locks. Today the queue already
> causes deadlocks.
>
> What happens?
>
> The OSyncQueue stops dispatching if pendingLimit number of messages
> waiting for an answer. This is correct IPC behaviour if the messages are
> independent but this is not correct in case of OpenSync.
>
> Some protocols (e.g. SyncML) can only flush once for an object type
> (SyncML datastore). This means changes are collected and send if the
> maximum message size of the protocol is reached or all OpenSync messages
> are present. This means the only guaranteed send operation is done if
> the OpenSync message committed_all is handled.
>
> A first workaround was to commit all changes immediately and abort the
> complete synchronization if an error happens by signalling the error to
> the committed_all context. This does not work because the mapping (of
> SyncML) is potentially sent after the changes are received. OpenSync can
> handle mappings only for not committed changes.
>
> So the decision is simply to add a new mechanism for mapping IDs or to
> remove the pendingLimit which creates a dead lock between two originally
> independent queues.
>
> Best regards
>
> Michael
> - --
> ___________________________________________________________________
>
> Michael Bell Humboldt-Universitaet zu Berlin
>
> Tel.: +49 (0)30-2093 2482 ZE Computer- und Medienservice
> Fax: +49 (0)30-2093 2704 Unter den Linden 6
>
michael.bell@... D-10099 Berlin
> ___________________________________________________________________
>
>
>
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com_______________________________________________
Opensync-devel mailing list
Opensync-devel@...
https://lists.sourceforge.net/lists/listinfo/opensync-devel