Daniel Parthey
2014-Jan-06 09:25 UTC
[Dovecot] [SIEVE] Locking Errors with vnd.dovecot.duplicate Extension
Hi, we are running a 4 host setup which each hosts a director+mailbox which is mounted via NFSv4 from a DRBD cluster. * Dovecot upstream release 2.1.16 * Doveadm batch subcommand fix - http://hg.dovecot.org/dovecot-2.1/raw-rev/850b5d8bbcc9 * Pigeonhole release 0.3.4 Now we would like to remove duplicate Mails using the vnd.dovecot.duplicate extension using a SIEVE script like this: require ["vnd.dovecot.duplicate", "fileinto", "mailbox", "regex", "vacation", "variables"]; if duplicate { fileinto :create "Trash"; } But as soon as we start delivering duplicate mails, we're sometimes getting locking errors from the mailbox (which is responsible for the user) according to the director: Dec 27 16:36:30 10.129.3.213 dovecot: lmtp(27975, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:33 10.129.3.213 dovecot: lmtp(27987, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:35 10.129.3.213 dovecot: lmtp(27994, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:36 10.129.3.213 dovecot: lmtp(28011, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:36 10.129.3.213 dovecot: lmtp(28013, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:38 10.129.3.213 dovecot: lmtp(28017, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:39 10.129.3.213 dovecot: lmtp(28025, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:42 10.129.3.213 dovecot: lmtp(28037, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Dec 27 16:36:43 10.129.3.213 dovecot: lmtp(27973, user001 at example.org): Error: Creating lock file for /mail/dovecot/example.org/user001/.dovecot.lda-dupes timed out in 20 secs Configs and Error log is attached. Any idea how to mitigate these locking issues? Regards Daniel -------------- next part -------------- # 2.1.16: /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-56-generic x86_64 Ubuntu 12.04.3 LTS auth_cache_negative_ttl = 0 auth_cache_size = 10 M auth_cache_ttl = 1 mins auth_verbose = yes auth_verbose_passwords = sha1 deliver_log_format = mailbox: deliver: msgid=%m from=%f: %$ dict { quota = mysql:/etc/dovecot/conf.d/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no doveadm_password = secret instance_name = dovecot-mailbox lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes login_greeting = Mailbox login_log_format = mailbox: login: %$: %s login_trusted_networks = 10.129.3.0/24 mail_debug = yes mail_fsync = always mail_gid = vmail mail_home = /mail/dovecot/%d/%n mail_location = mdbox:~/mail mail_log_prefix = "mailbox: mail: %s(%u): <%{session}>: " mail_plugins = quota stats mail_privileged_group = vmail mail_uid = vmail managesieve_implementation_string = Sieve managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave vnd.dovecot.duplicate mdbox_rotate_interval = 1 weeks mdbox_rotate_size = 50 M mmap_disable = yes namespace { inbox = yes location = mailbox Archives { special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / type = private } passdb { args = /etc/dovecot/conf.d/dovecot-sql.conf.ext driver = sql } plugin { quota = dict:User quota::proxy::quota quota_rule = *:storage=10G quota_rule2 = Trash:storage=+100M quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +vnd.dovecot.duplicate stats_refresh = 30 secs stats_track_cmds = yes } protocols = imap pop3 lmtp sieve service auth { unix_listener auth-userdb { group = dovecot user = dovecot } } service dict { unix_listener dict { group = vmail mode = 0660 } } service doveadm { inet_listener doveadm-server { port = 19000 } } service imap-login { inet_listener imap { port = 19143 } } service imap-postlogin { executable = script-login /usr/local/bin/dovecot-postlogin user = $default_internal_user } service imap { executable = imap imap-postlogin } service lmtp { inet_listener lmtp-without-quota { address = * port = 19025 } inet_listener lmtp { address = * port = 19024 } } service managesieve-login { inet_listener sieve { port = 19200 } } service pop3-login { inet_listener pop3 { port = 19110 } } service pop3-postlogin { executable = script-login /usr/local/bin/dovecot-postlogin user = $default_internal_user } service pop3 { executable = pop3 pop3-postlogin } service quota-warning { executable = script /usr/local/bin/quota-warning extra_groups = dovecot unix_listener quota-warning { user = vmail } user = vmail } service stats { fifo_listener stats-mail { mode = 0600 user = vmail } } ssl = no syslog_facility = local1 userdb { driver = prefetch } userdb { args = /etc/dovecot/conf.d/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol imap { imap_client_workarounds = delay-newmail tb-extra-mailbox-sep mail_plugins = quota stats imap_quota imap_stats } protocol lmtp { mail_plugins = quota stats sieve } -------------- next part -------------- # 2.1.16: /etc/dovecot-director/dovecot-director.conf # OS: Linux 3.2.0-56-generic x86_64 Ubuntu 12.04.3 LTS auth_verbose = yes auth_verbose_passwords = sha1 base_dir = /var/run/dovecot-director deliver_log_format = director: deliver: msgid=%m from=%f: %$ director_doveadm_port = 20000 director_mail_servers = 10.129.3.193 10.129.3.192 10.129.3.191 10.129.3.190 director_servers = 10.129.3.193 10.129.3.192 10.129.3.191 10.129.3.190 director_user_expire = 2 days disable_plaintext_auth = no doveadm_password = secret doveadm_proxy_port = 19000 instance_name = dovecot-director lmtp_proxy = yes login_greeting = Mail Balancer login_log_format = director: login: %$: %s login_trusted_networks = 10.129.3.0/24 mail_debug = yes mail_fsync = always mail_gid = vmail mail_home = /mail/dovecot/%d/%n mail_location = mdbox:~/mail mail_log_prefix = "director: mail: %s(%u): <%{session}>: " mail_max_userip_connections = 20 mail_privileged_group = vmail mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave vnd.dovecot.duplicate mmap_disable = yes passdb { args = /etc/dovecot-director/conf.d/dovecot-sql.conf.ext driver = sql } protocols = imap pop3 lmtp sieve service auth { unix_listener auth-userdb { user = dovecot } } service director { fifo_listener login/proxy-notify { mode = 0666 } inet_listener { port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service doveadm { executable = doveadm-server director inet_listener doveadm-server { port = 20000 } } service imap-login { executable = imap-login director inet_listener imap { port = 20143 } inet_listener imaps { port = 20993 ssl = yes } } service ipc { unix_listener ipc { user = dovecot } } service lmtp { inet_listener lmtp-without-quota { address = * port = 20025 } inet_listener lmtp { address = * port = 20024 } } service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 20200 } } service pop3-login { executable = pop3-login director inet_listener pop3 { port = 20110 } inet_listener pop3s { port = 20995 ssl = yes } } ssl_cert = </etc/certs/example.org.crt ssl_key = </etc/certs/example.org.key syslog_facility = local2 userdb { driver = prefetch } userdb { args = /etc/dovecot-director/conf.d/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { auth_socket_path = director-userdb } protocol sieve { auth_socket_path = director-userdb } protocol doveadm { auth_socket_path = director-userdb } protocol imap { imap_client_workarounds = delay-newmail tb-extra-mailbox-sep } -------------- next part -------------- A non-text attachment was scrubbed... Name: dovecot-error.log Type: text/x-log Size: 32736 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20140106/51cd48b9/attachment-0001.bin>
Possibly Parallel Threads
- Dovecot 2.1.16 doveadm purge -A segfault
- doveadm purge -A via doveadm-proxy director fails after some users
- Corrupted dbox file - purging found mismatched offsets
- Corrupted mdbox on LMTP director delivery while user is logged in via IMAP
- lmtp proxy timeout while waiting for reply to DATA reply