[Tickets #12523] Re: AS: mix of unix timestamp and modseq breaks sync

noreply at bugs.horde.org noreply at bugs.horde.org
Wed Aug 7 20:45:27 UTC 2013


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

Ticket URL: http://bugs.horde.org/ticket/12523
------------------------------------------------------------------------------
  Ticket             | 12523
  Updated By         | Thomas Jarosch <thomas.jarosch at intra2net.com>
  Summary            | AS: mix of unix timestamp and modseq breaks sync
  Queue              | Synchronization
  Version            | Git master
  Type               | Bug
  State              | Feedback
  Priority           | 2. Medium
  Milestone          |
  Patch              |
  Owners             | Michael Rubinsky
------------------------------------------------------------------------------


Thomas Jarosch <thomas.jarosch at intra2net.com> (2013-08-07 20:45) wrote:

>> Horde_ActiveSync_Connector_Importer::importMessageDeletion() looks
>> affected, too.
>
> It uses the same Horde_Core_ActiveSync_Driver::changeMethod call so  
> this will be fixed by the same change.

IMHO

Importer::importMessageDeletion() will still write time() to $change['mod'],
Driver::changeMessage() is not used in this code path. Or is it?

I'm 99% sure it will go wrong though I haven't tested the new code yet.

> I'm not sure I follow. The exception in  
> Horde_Core_ActiveSync_Driver::moveMessage() will be thrown before  
> the state is updated. It's called in ::importMessageMove() on line  
> 277, the state is updated on line 295 - which won't be reached  
> because the exception is not caught and propagates up the call stack.

Sorry, I think I misread this somehow. The last time I read it,
the state update was before the moveMessage() call :)

UPDATE: I think I understand why I confused it: The importMessageDeletion()
_first_ updates the state and then does the deletion. In case the  
"backend" deletion
times out, the state is already updated. Is that intentional?


I've grepped the codebase for 'mod' usage and found
two other places that look "interesting". Would be nice
if you could check them for correctness:

framework/ActiveSync/lib/Horde/ActiveSync/Connector/Exporter.php
public function sendNextChange()
{
...
$stat = array('id' => $change['id'], 'mod' => $change['id'], 0);        
<-- 'id' twice
...
}

and

framework/ActiveSync/lib/Horde/ActiveSync/Connector/Importer.php
public function importFolderChange()
{
...
$change['mod'] = $displayname;                <-- $displayname for the  
modseq column?
}


Thanks,
Thomas






More information about the bugs mailing list