[Dovecot] Problem with dovecot + imap idle + qmail-localdelivery

Jochen Schug dovecot at 17z.de
Tue Mar 24 10:51:16 EET 2009


On Tue, 24 Mar 2009 08:12:07 +0100, Timo Sirainen <tss at iki.fi> wrote:

> There is only one difference between what IDLE does and what a non- 
> IDLEing connection does: If inotify/dnotify/kqueue is enabled, Dovecot  
> notices immediately when a new mail pops up in new/ or cur/ directory  
> and does a resync. Hmm. Actually now I see one possibility if qmail- 
> local was written in a stupid/buggy way:
>
> 1. qmail-local does rename tmp/file -> new/file
> 2. Dovecot notices new/file and renames it to cur/file:2, immediately
> 3. qmail-local stats new/file to see if rename() succeeded (not  
> necessary), notices it's no longer there and fails with quota failure  
> (..but why quota failure?..)

The quota failure comes from a patch. An unpatched qmail-local thinks the mail was not delivered properly, gives a temporary error and tries the delivery again... and again... and again.

I'm no C expert, therefore I can't tell how qmail-local handles the delivery exactly.


> That's the only explanation I can think of. This could be tested by  
> compiling Dovecot with --with-notify=none configure option, which would  
> cause IDLE to check for new mails only once in a while and make it much  
> less likely to hit the race condition.

I tried that already, but that was at the very beginning of my troubleshooting. The only other reference to the problem I'm experiencing was from a guy using Debian, who got around it by installing the inotify packages. 

Will --with-notify=none disable kevent and inotify/dnotify? I'll give it another shot then and report back.

Jochen






More information about the dovecot mailing list