[Tickets #12605] Re: AS: Fix loss of PINGABLE flag
noreply at bugs.horde.org
noreply at bugs.horde.org
Fri Aug 23 14:14:28 UTC 2013
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/12605
------------------------------------------------------------------------------
Ticket | 12605
Updated By | Thomas Jarosch <thomas.jarosch at intra2net.com>
Summary | AS: Fix loss of PINGABLE flag
Queue | Synchronization
Version | Git master
Type | Bug
-State | Feedback
+State | Assigned
Priority | 2. Medium
Milestone |
Patch | 1
Owners | Michael Rubinsky
------------------------------------------------------------------------------
Thomas Jarosch <thomas.jarosch at intra2net.com> (2013-08-23 14:14) wrote:
Turns out $this->_collections was more or less ok.
I just did the following:
- Re-create the account on the PIM
- Subscribed (=ping) a folder I didn't sync in yet.
The code path that handles a "<Ping>" with a folder list
first adds the folder via addCollection() so we have a sync key for sure.
Later in that code path we call updatePingableFlag().
In fact that's the only place we call updatePingableFlag() at all.
-> the newly subscribed folder was flagged as NOT PINGABLE.
Since collections::addCollection() does not update the collection in
the SyncCache,
updatePingable() flag relied on the side effect of using
the $this->_collections array directly while working on the cache. Nasty.
There's more: If a collection gets reset because the sync key does not
match anymore
and the PIM sends a <Ping> without a folder list, we will not set the
PINGABLE flag again.
-> IMHO we should run collections->updatePingable() on every PING request
right before the "// Start waiting for changes" line. Also updatePingable()
should modify the cache _and_ the current object.
More information about the bugs
mailing list