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

Reply via email to