The following issue has been RESOLVED.
======================================================================
http://www.dbmail.org/mantis/view.php?id=591
======================================================================
Reported By: tss
Assigned To: paul
======================================================================
Project: DBMail
Issue ID: 591
Category: IMAP daemon
Reproducibility: always
Severity: minor
Priority: normal
Status: resolved
target:
Resolution: fixed
Fixed in Version: 2.2.5
======================================================================
Date Submitted: 12-May-07 01:13 CEST
Last Modified: 02-Jun-07 15:30 CEST
======================================================================
Summary: EXPUNGE and multiple sessions breaks IMAP protocol
Description:
Using MySQL as backend if it matters.
I open two IMAP sessions to the same mailbox and execute commands:
Session 1:
x append inbox {10}
+ OK gimme that string
From: foo
x OK APPEND completed
x store 1 +flags \deleted
* 1 FETCH (FLAGS (\Seen \Answered \Deleted \Draft))
x OK STORE completed
x expunge
* 1 RECENT
* 1 EXPUNGE
x OK EXPUNGE completed
x fetch * uid
* 16 FETCH (UID 414)
x OK FETCH completed
Sesssion 2:
x noop
* 0 RECENT
* 1 EXPUNGE
* 15 FETCH (FLAGS ())
* 16 FETCH (FLAGS ())
x OK NOOP completed
The session 2 saw 16 messages originally. It should have given "* 16
EXISTS" reply after the EXPUNGE.
======================================================================
----------------------------------------------------------------------
paul - 12-May-07 20:06
----------------------------------------------------------------------
OK, I misread section 5.2 in rfc3501. Fixed in svn.
----------------------------------------------------------------------
tss - 12-May-07 20:46
----------------------------------------------------------------------
SVN didn't compile with me, I guess you meant <= instead of =< ?
But now I don't see any EXISTS replies at all, ever.
----------------------------------------------------------------------
paul - 12-May-07 22:30
----------------------------------------------------------------------
Quite right.
The fact that no EXISTS responses are ever sent during EXPUNGE responses
is to accomodate client bugs (Mail.app <2.1, and Outlook) that experience
synchronization problems if EXISTS/RECENT are sent in reply to commands
other that NOOP or CHECK.
This behaviour was noted by the docecot team, and confirmed by dbmail
users as well (though only anecdotally). Do you have additional
information? I don't like having to cater to magical clients quirks rather
than the RFC, but outlook compatibility is a hard requirement.
I'm open to suggestions here. I'm downscaling the severity of this report
for now.
----------------------------------------------------------------------
tss - 12-May-07 22:46
----------------------------------------------------------------------
But I'm now not seeing EXISTS replies even with NOOP when another session
appended a mail. So even without doing any EXPUNGEs. I'm not sure if this
was caused by the fix for this bug or something else though, I just
upgraded from 2.2.4 to dbmail_2_2_branch in SVN.
Anyway, if you do avoid sending EXISTS with non-NOOP/CHECK commands, then
you should also act within the session as if the new messages didn't
exist. The new messages shouldn't be visible in any way to a client
session until it has been announced with EXISTS.
BTW. I found these problems with my imaptest tool, it keeps noticing these
protocol errors and breaking my benchmark tests. :)
http://www.dovecot.org/list/dovecot/2007-March/020503.html
----------------------------------------------------------------------
paul - 01-Jun-07 22:18
----------------------------------------------------------------------
I think we've got this one covered, right?
Issue History
Date Modified Username Field Change
======================================================================
12-May-07 01:13 tss New Issue
12-May-07 20:06 paul Note Added: 0002163
12-May-07 20:06 paul Assigned To => paul
12-May-07 20:06 paul Status new => resolved
12-May-07 20:06 paul Resolution open => fixed
12-May-07 20:06 paul Fixed in Version => 2.2.5
12-May-07 20:46 tss Status resolved => feedback
12-May-07 20:46 tss Resolution fixed => reopened
12-May-07 20:46 tss Note Added: 0002164
12-May-07 22:30 paul Note Added: 0002165
12-May-07 22:30 paul Severity major => minor
12-May-07 22:46 tss Note Added: 0002166
28-May-07 13:13 nethzt Issue Monitored: nethzt
01-Jun-07 22:18 paul Note Added: 0002225
02-Jun-07 15:30 paul Status feedback => resolved
02-Jun-07 15:30 paul Resolution reopened => fixed
======================================================================
_______________________________________________
Dbmail-dev mailing list
[email protected]
http://twister.fastxs.net/mailman/listinfo/dbmail-dev