[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