[Tickets #12605] Re: AS: Fix loss of PINGABLE flag

noreply at bugs.horde.org noreply at bugs.horde.org
Fri Aug 23 13:59:18 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         | Michael Rubinsky <mrubinsk at horde.org>
  Summary            | AS: Fix loss of PINGABLE flag
  Queue              | Synchronization
  Version            | Git master
  Type               | Bug
  State              | Assigned
  Priority           | 2. Medium
  Milestone          |
  Patch              | 1
  Owners             | Michael Rubinsky
------------------------------------------------------------------------------


Michael Rubinsky <mrubinsk at horde.org> (2013-08-23 13:59) wrote:

> Hi,
>
> I just noticed that I had to open the email application on my iPod  
> to see new messages,
> email push was broken somehow. Reading through the logs I noticed it  
> complained the INBOX "collection" is not pingable.
>
> It turned out that the function to update the pingable state of a folder
> a) checked the wrong key name and b) checked it on the wrong variable.
> Two bugs in one line :o)
>
> Attached patch fixes the issue.
>
> I guess we need to fix this up in the database or use some other
> kind of mechanism to trigger an updatePingableFlag() call:
> I had to disable and re-enable email sync on the iPod to fix it.
>
> Thomas
>

This isn't correct. The idea behind the "PINGABLE" flag is to remember  
which collections were requested in the last full PING request so that  
when the client issues an empty PING request the next time around we  
know which collections to ask for. Just because we have a collection  
(in the cache) with a synckey does not mean that we want to PING it.

This method should only be called during a full PING request (one in  
which all collections the client is interested in PINGing is  
included). $this->_collections contains all the *currently* loaded  
collections that were requested during the current request.  
$collections (in the loop) contains ALL collections we know about.

I think what is happening here is that for some reason, the client is  
issuing a PING request without the email folder, so the email  
collection's ping flag is reset. Why it is issuing this request is  
another story...wild guess - maybe an error in the email collection at  
some point prompted the client to stop trying?






More information about the bugs mailing list