Maildir locking by LDA of dovecot

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Maildir locking by LDA of dovecot

Mike Grozak
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 [hidden email] (:-), 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 [hidden email]. I found a lot of such strings in
dovecot.log file during the such DoS attack:
dovecot.log:deliver([hidden email]): May 16 04:18:48 Info:
msgid=<01c8b6da$a8bacf80$b7af2abe@sale>: save failed to INBOX: Timeout
while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:18:59 Info:
msgid=<[hidden email]>:
save failed to INBOX: Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:20:06 Info:
msgid=<01c8b6a8$7b552e00$a0a4034c@sale>: save failed to INBOX: Timeout
while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:20:14 Info:
msgid=<[hidden email]>: save failed to INBOX:
Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:20:50 Info:
msgid=<01c8b6b1$0df9cb00$cc36dfc9@tek2>: save failed to INBOX: Timeout
while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:21:00 Info:
msgid=<087901c7ca2d$ef272640$[hidden email]>: save
failed to INBOX: Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:21:01 Info:
msgid=<000701c8b6d2$01ff999f$c491aca7@snoueiij>: save failed to INBOX:
Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:22:32 Info:
msgid=<000801c8b69b$060c0230$3cd8a4b7@cpbvlrx>: save failed to INBOX:
Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:22:45 Info:
msgid=<000801c8b6a5$04ba6412$9910848d@aldldr>: save failed to INBOX:
Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:22:45 Info:
msgid=<031401c772e2$adc5be40$[hidden email]>: save failed to INBOX:
Timeout while waiting for lock
dovecot.log:deliver([hidden email]): May 16 04:23:08 Info:
msgid=<01c8b6db$0222fe80$b7af2abe@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 = [hidden email]
  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