syncevo-http-server: handle message resend while message is still being processed
@pohly
Submitted by Patrick Ohly Assigned to SyncEvolution Community
Description
---- Reported by patrick.ohly@intel.com 2010-04-07 13:52:34 +0000 ----
If a client resends a message while the HTTP server and syncevo-dbus-server are still working on the original message, then synchronization will fail:
- the reply to the original message cannot be delivered
- syncevo-dbus-server probably gets an error reported from syncevo-http-server and aborts
Triggering this case is hard. It depends on sending such a complex message to the server that processing it takes long enough to resend a message in the meantime. Probably a unit test has to delay the server somehow.
The solution to this problem could go like this:
- when processing a message and returning the reply fails, cache the message in syncevo-http-server (as already done) and do not report the failure (in contrast to the current implementation)
- when receiving a message which is identical with the current one, cancel the original request and switch to the new HTTP request, then deliver the reply once available
--- Bug imported by patrick.ohly@gmx.de 2012-07-29 20:36 UTC ---
This bug was previously known as bug 572 at https://bugs.meego.com/show_bug.cgi?id=572