[Tickets #12567] Re: AS: Unlikely race condition leads to data loss

noreply at bugs.horde.org noreply at bugs.horde.org
Wed Nov 20 18:22:23 UTC 2013


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/12567
------------------------------------------------------------------------------
  Ticket             | 12567
  Updated By         | Michael Rubinsky <mrubinsk at horde.org>
  Summary            | AS: Unlikely race condition leads to data loss
  Queue              | Synchronization
  Version            | Git master
  Type               | Bug
-State              | Assigned
+State              | Feedback
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             | Michael Rubinsky
------------------------------------------------------------------------------


Michael Rubinsky <mrubinsk at horde.org> (2013-11-20 18:22) wrote:

Looking at this again.

The strategy of using an MD5 of the object won't work. When sending  
changes from client->server, we are not guaranteed to have the full  
object represented. Often times the client will only send the changed  
properties, so we would need to first apply the change to the backend,  
then fetch the change again before calculating the MD5. Of course,  
this also opens up another place we could run into the race condition  
we are trying to prevent. I.e., someone else could modify the object  
between our committing the changes and re-fetching the object to  
obtain an MD5. The only real solution here is to refactor the API to  
return a modseq/timestamp (let's call these "syncstamps"), after each  
message change, which would of course be a BC break.





More information about the bugs mailing list