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

bugs at horde.org bugs at horde.org
Thu Nov 8 19:21:20 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         | Michael Slusarz <slusarz at horde.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
------------------------------------------------------------------------------


Michael Slusarz <slusarz at horde.org> (2012-11-08 12:21) 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;
                 }
             }
         }

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





More information about the bugs mailing list