[Tickets #11665] Re: Seen/unseen status doesn't match IMAP flags status

bugs at horde.org bugs at horde.org
Thu Nov 8 19:43:48 UTC 2012


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

Ticket URL: http://bugs.horde.org/ticket/11665
------------------------------------------------------------------------------
  Ticket             | 11665
  Updated By         | arjen+horde at de-korte.org
  Summary            | Seen/unseen status doesn't match IMAP flags status
  Queue              | IMP
  Version            | 6.0.0
  Type               | Bug
  State              | Feedback
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             | Michael Slusarz
------------------------------------------------------------------------------


arjen+horde at de-korte.org (2012-11-08 19:43) wrote:

>>> I'm having the same problem.
>>>
>>> Steps to reproduce
>>> - Log in
>>> - Update some flags within Horde
>> There is something really weird. I have enabled the logging in
>> imp/config/backends.local.php
>>
>> $servers['advanced']['debug'] = '/tmp/imaplog';
>>
>> Since doing that yesterday, the problem has not occured again. It
>> almost looks like enabling the debug fixes the problem. If it doesn't
>> occur again, I'll disable debugging to see if it resurfaces.
>
> When debugging is inactive, FLAGS.SILENT is sent to update the flags  
> instead of FLAGS.  This means that flag changes (FETCH responses)  
> won't be returned by the server.  Which means we normally wouldn't  
> update the cache...
>
> ...except this is all known behavior.  And irrelevant.  We only  
> cache flags if CONDSTORE/QRESYNC is available.  If these are  
> available and active, then flag changes MUST always be sent  
> regardless of whether .SILENT is given (RFC 4551 [3.2]).  So my  
> guess is that the server is broken because it is not sending back  
> these FETCH responses.
>
> The only way to be able to log this will be to alter the  
> Horde_Imap_Client_Socket source (around line 3012):
>
>         if (!empty($options['replace'])) {
>             $cmd->add(array(
> -               'FLAGS' . ($this->_debug->debug ? '' : '.SILENT'),
> +               'FLAGS.SILENT',
>                $options['replace']
>             ));
>             $cmds[] = $cmd;
>         } else {
>             foreach (array('add' => '+', 'remove' => '-') as $k => $v) {
>                 if (!empty($options[$k])) {
>                     $cmdtmp = clone $cmd;
>                     $cmdtmp->add(array(
> -                       $v . 'FLAGS' . ($this->_debug->debug ? '' :  
> '.SILENT'),
> +                      $v . 'FLAGS.SILENT',
>                         $options[$k]
>                     ));
>                     $cmds[] = $cmdtmp;
>                 }
>             }
>         }

OK, done. I have cleared the cache again and we'll see what happens now.

> Additionally, you can send me the IMAP log you have that was  
> successful so I can check on things like CAPABILITY on your server.

Sent via private mail.





More information about the bugs mailing list