[Dovecot] Maildir locking by LDA of dovecot

Mike Grozak mike at tversu.ru
Wed May 21 21:54:29 EEST 2008


Hi all!

First of all, I want ti thank the whole Dovecot community (developers 
for developing and fast responses, users for populating and responses 
too). Dovecot is a really good and fast IMAP server - it serves near 
3000 in our installation.

Now I have a problem and request community's help its resolving;)
Dovecot version: 1.0.13, compiled with vpopmail support.
I have an account spam at domain.com (:-), in which we put all our spam (we 
gather statistic later). There can be 10 and more delivery attempts in a 
second to maildir of this account during the spam attacks on our server. 
The queue of our server can grow up to 20k messages, and all of these 
messages are sent to spam at domain.com. I found a lot of such strings in 
dovecot.log file during the such DoS attack:
dovecot.log:deliver(spam at domain.com): May 16 04:18:48 Info: 
msgid=<01c8b6da$a8bacf80$b7af2abe at sale>: save failed to INBOX: Timeout 
while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:18:59 Info: 
msgid=<6611811842.20080516012444 at poiusadfhnvxzmdiasdasgkhlsdkfg.com>: 
save failed to INBOX: Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:20:06 Info: 
msgid=<01c8b6a8$7b552e00$a0a4034c at sale>: save failed to INBOX: Timeout 
while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:20:14 Info: 
msgid=<360825920.32055246029506 at mirgames.ru>: save failed to INBOX: 
Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:20:50 Info: 
msgid=<01c8b6b1$0df9cb00$cc36dfc9 at tek2>: save failed to INBOX: Timeout 
while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:21:00 Info: 
msgid=<087901c7ca2d$ef272640$1e01a8c0 at telefonia.InterCable.net>: save 
failed to INBOX: Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:21:01 Info: 
msgid=<000701c8b6d2$01ff999f$c491aca7 at snoueiij>: save failed to INBOX: 
Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:22:32 Info: 
msgid=<000801c8b69b$060c0230$3cd8a4b7 at cpbvlrx>: save failed to INBOX: 
Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:22:45 Info: 
msgid=<000801c8b6a5$04ba6412$9910848d at aldldr>: save failed to INBOX: 
Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:22:45 Info: 
msgid=<031401c772e2$adc5be40$1e01a8c0 at mtu-net.ru>: save failed to INBOX: 
Timeout while waiting for lock
dovecot.log:deliver(spam at domain.com): May 16 04:23:08 Info: 
msgid=<01c8b6db$0222fe80$b7af2abe at info>: save failed to INBOX: Timeout 
while waiting for lock

My dovecot.conf:
$ cat /etc/dovecot.conf | grep -v \# | grep -v ^\n
protocols = imap pop3
log_path = /var/log/dovecot.log
ssl_disable = yes
login_user = dovecot
login_process_per_connection = no
login_max_connections = 1024
login_greeting = Server is ready.
 >>dotlock_use_excl = yes - can it be the reason?
fsync_disable = yes
first_valid_uid = 39
last_valid_uid = 39
first_valid_gid = 39
last_valid_gid = 39
max_mail_processes = 1024
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = yes

protocol imap {
  mail_plugins = quota imap_quota
  login_greeting_capability = yes
  imap_client_workarounds = outlook-idle
}

protocol pop3 {
  pop3_lock_session = no
  pop3_uidl_format = %08Xu%08Xv
  mail_plugins = quota
}

protocol lda {
  postmaster_address = postmaster at tversu.ru
  mail_plugins = quota cmusieve
  sendmail_path = /usr/lib/sendmail
  fsync_disable = no
}

auth_cache_size = 10240
auth_username_format = %Lu

auth default {
    mechanisms = plain login cram-md5
    socket listen {
       master {
       path = /var/run/dovecot/auth-master
       mode = 0666
      }
      client {
            path = /var/spool/postfix/private/auth
            mode = 0666
            user = postfix
            group = postfix
        }
    }

  passdb vpopmail {
    args = cache_key=%u dovecot
  }
  userdb vpopmail {
  }

  user = vpopmail

  ssl_require_client_cert = no
}

dict {
}


plugin {
  quota = maildir:ignore=Trash
}


What can I do for resolving this locks?
May be, while looking into uidlist file, can dovecot LDA lock it? And 
other deliver processes can't open it and wait for him?

---------------------------
WBR, Mike Grozak, TvSU IC


More information about the dovecot mailing list