[Dovecot] POP3 locking

Matthias Andree matthias.andree at gmx.de
Wed Jul 30 10:52:50 EEST 2008


On Wed, 30 Jul 2008, Adrian Overbury wrote:

> Now, our current server establishes a lock on the mailbox, and when that  
> second connection happens it simply responds that there's no messages to  
> collect... we used to have it terminate the connection, but this brings  
> up confusing error messages on User A's client, and they call up and  
> complain -- not an ideal situation.

Why do you do that? Is "-ERR unable to lock maildrop" in response to
PASS or APOP not an option? One computer (laptop) accessing the same
time as a PC accesses the box will purge its copy of the UIDL and
refetch ALL messages next time...

> I'm not sure where, though, or how long the lock persists for, or what  
> its actual purpose is, because my tests show me that I can log the same  
> users in with two concurrent sessions and get the same message twice.  
> It's probably a fault in my understanding of how locking in user  
> sessions of a pop3 server should work, but that doesn't sound right to 
> me.

Well... according to RFC-1939, the session should be locked when
entering TRANSACTION state. Purpose is to avoid two processes stomping
over each other in the later UPDATE state.

> Can someone explain if what I'm seeing is correct, or what problem it  
> may be symptomatic of?  Does dovecot even do concurrent-user-session  
> locking?  So far I've enjoyed playing with dovecot -- far more than the  
> current server we use.  I'd like to use it as our primary pop3 server,  
> but preventing users from having concurrent sessions and getting the  
> same message more than once, and keeping them from seeing errors because  
> of their client trying to open multiple sessions is important.

Same here - I just did a trivial test (Dovecot 1.1 from Mercurial repo,
two POP3+SSL sessions at the same time, off of Maildir): log in both,
delete a message in one and QUIT (so it passes through UPDATE state),
LIST in the remaining session still lists the deleted message, but
retrieving it results in an error. Probably confusing for clients ;-)

HOWEVER, if the same message is downloaded twice, that's a client bug.
It can use UIDL and avoid scheduling the same message twice for
fetching.

Outlook is a piece of sh.. WRT mail capabilities, with Outlook 2003
still not fixing MIME + quoting bugs that Microsoft is aware of since
the mid-1990s.

I have some hope that I'll be able to migrate to Kontact (KMail +
organizer + stuff) next year. Certainly not my favourite but given
there's no recent Windows version of Evolution...

> Oh, and I'm user dovecot 1.0.beta3, since I don't really have the option  
> of upgrading the OS on my mail servers any time soon.

I'd stay away from such a version, but use a recent 1.0.X or 1.1.X - if
someone is looking after your server regularly (once or twice a week or
so), compiling it yourself shouldn't be an issue.

HTH

-- 
Matthias Andree


More information about the dovecot mailing list