[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