« Return to Thread: [RFC] Remove pendingLimit from OSyncQueue

[RFC] Remove pendingLimit from OSyncQueue

by Michael Bell :: Rate this Message:

Reply to Author | View in Thread

-----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
___________________________________________________________________

PGP Fingerprint: 09E4 3D29 4156 2774 0F2C  C643 D8BD 1918 2030 5AAB
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJ3bGV2L0ZGCAwWqsRAnrFAKCA56uxFW4qLJCKvC9lbSpQdFI7fwCggz0R
QcKCjxg+huA1bn9yDj2Njf4=
=Q2wY
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
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

 « Return to Thread: [RFC] Remove pendingLimit from OSyncQueue